Abbiamo riscontrato un problema su IIS 7.5 in cui abbiamo un semplice sistema di distribuzione che consiste di quanto segue:
Crea un file zip del nuovo webroot, composto da tre cartelle:
Api
Site
Manager
Questo è decompresso in una nuova cartella (diciamo che lo chiamiamo "SITE_REV1") e contiene uno script che invoca il seguente (uno per ogni webroot):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
Questo di solito funziona, in 9/10 volte. In alcuni casi, il webroot sembra essere aggiornato correttamente (se controllo le impostazioni di base in Gestione IIS, il percorso sembra corretto), ma il sito in esecuzione in questione viene effettivamente puntato alla posizione precedente. L'unico modo in cui siamo riusciti a "risolverlo" è eseguendo un ripristino IIS. Non è sufficiente riciclare il pool di applicazioni in questione.
A volte sembra addirittura necessario effettuare un riavvio, ma non sono sicuro al 100% che sia accurato (non sono sempre stato io stesso a risolvere il problema).
Ho riscritto lo script usando Powershell e il modulo di amministrazione Web, sperando che ci fosse un problema tecnico in appcmd, ma si verifica lo stesso problema.
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
Qualcuno ha sperimentato qualcosa del genere? Qualcuno ha idea di cosa sta succedendo e cosa posso provare e fare per prevenire questo problema? Effettuare un ripristino IIS non è davvero una buona opzione per noi, poiché ciò influirebbe su tutti i siti sul server ogni volta che proviamo a distribuire le modifiche su un singolo sito.
EDIT: abbiamo identificato che un avvio / arresto del sito (NON il pool di applicazioni) in Gestione IIS risolve il percorso fisico errato, ma se interrompo il sito utilizzando appcmd, cambio percorso fisico e quindi lo avvio, soffro ancora di gli stessi problemi. Sono in uno spazio vuoto ...