In IIS 7.5 ist ein Problem aufgetreten, bei dem wir ein einfaches Bereitstellungssystem haben, das Folgendes umfasst:
Erstellen Sie eine Zip-Datei mit neuer Webroot, die aus drei Ordnern besteht:
Api
Site
Manager
Dies wird in einen neuen Ordner entpackt (sagen wir, wir nennen ihn "SITE_REV1") und enthält ein Skript, das Folgendes aufruft (eines für jede Webroot):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
Dies funktioniert normalerweise 9/10 Mal. In einigen Fällen scheint die Webroot korrekt aktualisiert zu sein (wenn ich die Grundeinstellungen in IIS Manager überprüfe, sieht der Pfad korrekt aus), aber die betreffende laufende Site zeigt tatsächlich auf den alten Speicherort. Die einzige Möglichkeit, dies zu beheben, besteht darin, einen IIS-Reset auszuführen. Es reicht nicht aus, den betreffenden Anwendungspool zu recyceln.
Manchmal scheint es sogar notwendig zu sein, einen Neustart durchzuführen, aber ich bin nicht 100% sicher, dass dies korrekt ist (es war nicht immer ich selbst, der das Problem behoben hat).
Ich habe das Skript mit Powershell und dem Webadministrationsmodul neu geschrieben, in der Hoffnung, dass es einen Fehler in appcmd gibt, aber das gleiche Problem tritt auf.
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
Hat jemand so etwas erlebt? Hat jemand eine Ahnung, was los ist und was ich versuchen kann, um dieses Problem zu verhindern? Ein IIS-Reset ist für uns keine gute Option, da dies alle Sites auf dem Server jedes Mal betrifft, wenn wir versuchen, Änderungen an einer einzelnen Site bereitzustellen.
BEARBEITEN: Wir haben festgestellt, dass ein Start / Stopp der Site (NICHT des Anwendungspools) in IIS Manager den fehlerhaften physischen Pfad behebt. Wenn ich die Site jedoch mit appcmd stoppe, den physischen Pfad ändere und dann starte, leide ich immer noch darunter die gleichen Probleme. Ich bin leer ...