Frage

Wir setzen derzeit Web-Anwendungen, die von der Erstellung einer Datenbank und SQL-Skripte durch Query Analyzer ausgeführt wird. Dann kopieren wir die Ausgabe von „Website veröffentlichen“ und einrichten, die Website in IIS.

Wir haben WebSetup in Visual Studio gesehen, aber das Teil scheint dünn zu dokumentieren. Zum Beispiel sind wir nicht klar, wie der Benutzer für IP und das Kennwort des SQL Servers zu fragen. Wir neigen dazu, auch Websites, auf diese Weise unter Ordner kommen zum Einsatz kommen wie http://example.com/project statt von nur http://example.com .

Dann gibt es Probleme mit AJAX.Net nicht installiert oder einige oder die andere Patch nicht angewendet werden.

Bisher haben wir den physischen Zugriff auf die Server. Schon bald wenn wir Versand CD-ROMs sein werden. Was ist der praktische Kompromiss zwischen manuellem Eingriff und Automatisierung?

War es hilfreich?

Lösung

Vermeiden Sie Visual Studio-Bereitstellung, und so weit wie möglich automatisieren. Web Deployment Projects und NAnt können Ihre Freunde sein!

Kurz gesagt, unser Deployment-Setup:

  1. Wir verwenden RedGate SQL-Skript Unterschiede zwischen Entwicklern und Live-Datenbank.

  2. Eine NAnt Build-Datei, die MSBUILD ruft das Web-Deployment-Projekt (.wdproj) zu bauen, verliert den resultierenden kompilierte Web-App auf (zusammen mit dem SQL Change Script) und lädt dann die Zip-Datei auf den Server.

  3. Auf der Serverseite gibt es eine weitere NAnt Build-Datei, die die Anwendung offline nimmt, sichert die Datenbank auf, sichert die Website auf. läuft der SQL Change Script, um die neue Version unzips und bringt die App online.

Schritt 3 in die Regel ausgeführt wird „manuell“ (ein Doppelklick), aber manchmal spät in der Nacht geplant. Sie könnten genau das gleiche tun von einem CD-ROM, oder sogar ein ziemlich kleinen Windows Forms-Anwendung als Wrapper schreiben.

Ganz glücklich Details der NAnt Skript zu geben, wenn Sie interessiert sind.

Andere Tipps

Haben Sie versucht, mit Web Deployment Projekt ? Es gibt Unterstützung für

Ich implementieren meist ASP.NET apps auf Linux-Servern. Hier ist mein Standard-Workflow:

  • Ich benutze eine Quellcode-Repository (wie Subversion)
  • Auf dem Server, ich habe einen Bash-Skript, die den folgenden:
    • Checkt den neuesten Code
    • Ist ein Build (erstellt die DLLs)
    • Filter die Dateien auf das Wesentliche (entfernt Code-Dateien zum Beispiel)
    • Sichert die Datenbank
    • nach oben
    • Verteilt die Dateien auf den Web-Server in einem Verzeichnis mit dem aktuellen Datum benannt
    • Aktualisieren der Datenbank, wenn ein neues Schema in der Bereitstellung enthalten ist
    • Macht die neue Installation des Standard eines so wird es mit dem nächsten Hit
    • serviert

Zur Kasse wird mit der Kommandozeilen-Version von Subversion und Gebäude ist mit xbuild (msbuild Arbeit Doppelgänger aus dem Mono-Projekt) getan getan. Der größte Teil der Magie in ReleaseIt gemacht wird.

Auf meinem Dev-Server Ich habe im Wesentlichen kontinuierliche Integration, sondern auf der Produktionsseite ich eigentlich SSH in den Server und starten Sie die Bereitstellung manuell durch das Skript ausgeführt wird. Mein Skript ist geschickt ‚deploy‘ genannt, so dass das, was ich an der Bash-Eingabeaufforderung eingeben. Ich bin sehr kreativ. Nicht.

In der Produktion muß ich zweimal ‚deploy‘ geben: einmal beim Check-out, bauen und zu einem datierten deploy und sobald das Verzeichnis der Standardinstanz zu machen. Da die Verzeichnisse datiert sind, kann ich einfach zu jeder vorherigen Bereitstellung zurückkehren, indem Sie ‚deploy‘ aus dem entsprechenden Verzeichnis eingeben.

Ersteinführung dauert ein paar Minuten und Rückkehr zu einer früheren Version ein paar Sekunden dauert.

Es hat eine schöne Lösung für mich und verlässt sich nur auf die drei Befehlszeilenprogramme (SVN, xbuild und releaseit), der DB-Client, SSH und Bash.

Ich muss wirklich die Kopie von ReleaseIt auf CodePlex aktualisieren irgendwann:

http://releaseit.codeplex.com/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top