Nos hemos encontrado con un problema en IIS 7.5 donde tenemos un sistema de implementación simple que consiste en lo siguiente:
Cree un archivo zip de nueva raíz web, que consta de tres carpetas:
Api
Site
Manager
Esto se descomprime en una nueva carpeta (digamos que lo llamamos "SITE_REV1") y contiene un script que invoca lo siguiente (uno para cada raíz web):
C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"
Esto generalmente funciona, en 9/10 veces. En algunos casos, la raíz web parece estar actualizada correctamente (si inspecciono la configuración básica en el Administrador IIS, la ruta parece correcta), pero el sitio en ejecución en cuestión apunta realmente a la ubicación anterior. La única forma en que hemos logrado "arreglarlo" es ejecutando un reinicio de IIS. No es suficiente reciclar el grupo de aplicaciones en cuestión.
A veces parece incluso necesario hacer un reinicio, pero no estoy 100% seguro de que sea correcto (no siempre fui yo el que solucionó el problema).
Reescribí el script usando Powershell y el módulo de Administración Web, esperando que hubiera un error en appcmd, pero ocurre el mismo problema.
Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"
¿Alguien ha experimentado algo como ésto? ¿Alguien tiene idea de lo que está sucediendo y qué puedo hacer para evitar este problema? Hacer un reinicio de IIS no es realmente una buena opción para nosotros, porque eso afectaría a todos los sitios en el servidor cada vez que intentemos implementar cambios en un solo sitio.
EDITAR: Hemos identificado que un inicio / detención del sitio (NO el grupo de aplicaciones) en el Administrador de IIS resuelve la ruta física errónea, pero si detengo el sitio usando appcmd, cambio la ruta física y luego lo inicio, todavía sufro los mismos problemas Estoy en blanco ...
Respuestas:
¿Cambiar la ruta física desde el Administrador de IIS funciona correctamente e inmediatamente?
Es posible que desee probar el siguiente comando. De forma diferente, la sintaxis debería tener el mismo resultado, pero tal vez funcione de manera ligeramente diferente internamente, lo que hace que IIS recoja los cambios (mejor):
C:\Windows\System32\inetsrv\appcmd.exe set app "www.site.com/" -[path='/'].physicalPath:"SITE_REV1\Site"
fuente
Un reciclaje de grupo de aplicaciones debería ser suficiente por sitio. Estos son procesos independientes. Con demasiada frecuencia, los artículos y procesos promueven el uso de iisreset. ¿Es una opción detener / iniciar el grupo de aplicaciones para un sitio? ¿Es esta una solución de servidor único y está tratando de minimizar el tiempo de inactividad del sitio? Hay una opción para deshabilitar el reciclaje en los cambios de configuración. Entonces puedes reciclar manualmente. Cuando ocurre el problema, ¿qué se enumera en applicationHost.config?
fuente