Nous avons rencontré un problème sur IIS 7.5 où nous avons un système de déploiement simple qui se compose des éléments suivants:
Créez un fichier zip de nouveau webroot, composé de trois dossiers:
Api
Site
Manager
Celui-ci est décompressé dans un nouveau dossier (disons que nous l'appelons "SITE_REV1") et contient un script qui invoque ce qui suit (un pour chaque racine Web):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
Cela fonctionne généralement, en 9/10 fois. Dans certains cas, la racine Web semble être mise à jour correctement (si j'inspecte les paramètres de base dans le Gestionnaire des services Internet, le chemin semble correct), mais le site en cours d'exécution est en fait pointé vers l'ancien emplacement. La seule façon dont nous avons réussi à "résoudre ce problème" consiste à exécuter une réinitialisation IIS. Il ne suffit pas de recycler le pool d'applications en question.
Parfois, il semble même nécessaire de faire un redémarrage, mais je ne suis pas sûr à 100% que c'est exact (ce n'est pas toujours moi qui résolvais le problème).
J'ai réécrit le script à l'aide de Powershell et du module d'administration Web, en espérant qu'il y avait un problème dans appcmd, mais le même problème se produit.
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
Quelqu'un a-t-il vécu quelque chose comme ça? Quelqu'un a-t-il une idée de ce qui se passe et de ce que je peux essayer de faire pour éviter ce problème? Faire une réinitialisation IIS n'est pas vraiment une bonne option pour nous, car cela affecterait tous les sites sur le serveur chaque fois que nous essayons de déployer des modifications sur un seul site.
EDIT: Nous avons identifié qu'un démarrage / arrêt du site (PAS le pool d'applications) dans IIS Manager résout le chemin physique erroné, mais si j'arrête le site en utilisant appcmd, change le chemin physique, puis le démarre, je souffre toujours de les mêmes problèmes. Je suis à blanc ...