Je recherche différentes techniques / outils que vous utilisez pour déployer un projet d'application Web ASP.NET ( PAS un site Web ASP.NET) en production?
Je suis particulièrement intéressé par le flux de travail qui se produit entre le moment où votre serveur Continuous Integration Build supprime les binaires à un endroit et le moment où la première demande de l'utilisateur atteint ces binaires.
Utilisez-vous des outils spécifiques ou simplement XCOPY? Comment l'application est-elle packagée (ZIP, MSI, ...)?
Lorsqu'une application est déployée pour la première fois, comment configurer le pool d'applications et le répertoire virtuel (les créez-vous manuellement ou avec un outil)?
Lorsqu'une ressource statique change (CSS, JS ou fichier image), redéployez-vous l'ensemble de l'application ou uniquement la ressource modifiée? Que diriez-vous quand une page d'assembly / ASPX change?
Gardez-vous une trace de toutes les versions déployées pour une application donnée et en cas de problème, avez-vous des procédures de restauration de l'application à un état de fonctionnement connu antérieur?
N'hésitez pas à compléter la liste précédente.
Et voici ce que nous utilisons pour déployer nos applications ASP.NET:
- Nous ajoutons un projet de déploiement Web à la solution et le configurons pour créer l'application Web ASP.NET
- Nous ajoutons un projet de configuration ( PAS un projet de configuration Web) à la solution et le définissons pour prendre la sortie du projet de déploiement Web
- Nous ajoutons une action d'installation personnalisée et dans l'événement OnInstall, nous exécutons un assembly .NET de build personnalisé qui crée un pool d'applications et un répertoire virtuel dans IIS à l'aide de System.DirectoryServices.DirectoryEntry (cette tâche est effectuée uniquement la première fois qu'une application est déployée) . Nous prenons en charge plusieurs sites Web dans IIS, l'authentification pour les répertoires virtuels et la définition des identités pour les pools d'applications.
- Nous ajoutons une tâche personnalisée dans TFS pour créer le projet d'installation (TFS ne prend pas en charge les projets d'installation, nous avons donc dû utiliser devenv.exe pour créer le MSI)
- Le MSI est installé sur le serveur live (s'il existe une version précédente du MSI, il est d'abord désinstallé)