Ich suche nach verschiedenen Techniken / Tools, die Sie zum Bereitstellen eines ASP.NET-Webanwendungsprojekts ( NICHT der ASP.NET-Website) für die Produktion verwenden.
Ich bin besonders an dem Workflow interessiert, der zwischen dem Zeitpunkt, zu dem Ihr Continuous Integration Build-Server die Binärdateien an einem bestimmten Ort löscht, und dem Zeitpunkt, zu dem die erste Benutzeranforderung diese Binärdateien erreicht, stattfindet.
Verwenden Sie bestimmte Tools oder nur XCOPY? Wie ist die Anwendung verpackt (ZIP, MSI, ...)?
Wie richten Sie den App-Pool und das virtuelle Verzeichnis ein, wenn eine Anwendung zum ersten Mal bereitgestellt wird (erstellen Sie sie manuell oder mit einem Tool)?
Wenn sich eine statische Ressource ändert (CSS, JS oder Image-Datei), stellen Sie die gesamte Anwendung oder nur die geänderte Ressource erneut bereit? Wie wäre es, wenn sich eine Assembly- / ASPX-Seite ändert?
Behalten Sie alle bereitgestellten Versionen für eine bestimmte Anwendung im Auge und haben Sie Verfahren, um die Anwendung auf einen zuvor bekannten Arbeitszustand zurückzusetzen, falls etwas schief geht?
Fühlen Sie sich frei, die vorherige Liste zu vervollständigen.
Und hier ist, was wir zum Bereitstellen unserer ASP.NET-Anwendungen verwenden:
- Wir fügen der Lösung ein Web Deployment-Projekt hinzu und richten es zum Erstellen der ASP.NET-Webanwendung ein
- Wir fügen der Lösung ein Setup-Projekt ( NICHT Web-Setup-Projekt) hinzu und legen fest, dass es die Ausgabe des Web-Bereitstellungsprojekts übernimmt
- Wir fügen eine benutzerdefinierte Installationsaktion hinzu und führen im OnInstall-Ereignis eine benutzerdefinierte Build-.NET-Assembly aus, die mithilfe von System.DirectoryServices.DirectoryEntry einen App-Pool und ein virtuelles Verzeichnis in IIS erstellt. (Diese Aufgabe wird nur ausgeführt, wenn eine Anwendung zum ersten Mal bereitgestellt wird.) . Wir unterstützen mehrere Websites in IIS, Authentifizierung für virtuelle Verzeichnisse und Festlegen von Identitäten für App-Pools.
- Wir fügen eine benutzerdefinierte Aufgabe in TFS hinzu, um das Setup-Projekt zu erstellen (TFS unterstützt keine Setup-Projekte, daher mussten wir devenv.exe zum Erstellen des MSI verwenden).
- Das MSI wird auf dem Live-Server installiert (wenn es eine frühere Version des MSI gibt, wird es zuerst deinstalliert).