Pregunta

Estoy intentando reinstalar una DLL en el GAC, todo parece funcionar bien, pero la aplicación web que accede a ella todavía parece estar usando la anterior.

La DLL antigua es la misma versión que la nueva con solo una edición menor, será utilizada por 50 sitios diferentes, por lo que cambiar la versión y luego cambiar la referencia en web.config no es un bien solución.

Reiniciar el servidor IIS o el proceso de trabajo no es una opción ya que ya hay 50 sitios en ejecución que deben continuar haciéndolo.

¿Alguien sabe qué estoy haciendo mal o qué puedo hacer para remediar esta situación?

¿Fue útil?

Solución

AFAIK, debe reiniciar IIS para obtener una nueva referencia a la DLL actualizada.Lo mejor que puede hacer es realizar el reinicio en un momento de poco tráfico.Si está ejecutando varios servidores con equilibrio de carga, puede evitar que nuevas conexiones lleguen a un servidor hasta que se hayan cerrado todas las conexiones.Luego, actualice la DLL, reinicie IIS y vuelva a colocar el servidor en el grupo de conexiones.Repita para cada servidor sin tiempo de inactividad visible para los usuarios finales.

Otros consejos

Como no hace referencia a grupos de aplicaciones, asumiré que está en la versión anterior de IIS.En ese caso, lo que deberá hacer es "tocar" todas las DLL en cada sitio que hace referencia a la DLL.

El problema es que el código ya está cargado y necesitas encontrar una forma no intrusiva de volver a cargar la aplicación.Reciclar grupos de aplicaciones es una forma eficaz de hacerlo.Si está en el antiguo IIS que no tiene grupos de aplicaciones, actualizar la última modificación en las carpetas /bin/ o en los archivos web.config recargará la aplicación sin afectar a los otros sitios.

Por lo tanto, es necesario un script de algún tipo para hacer lo anterior.Todo lo que necesita hacer es actualizar la última modificación en las DLL en cada directorio de aplicación /bin.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top