IIS bloquea archivos incluso cuando hay un App_Offline.htm presente

IIS bloquea archivos incluso cuando hay un App_Offline.htm presente

Mi empresa de alojamiento acaba de actualizar mi servidor y trasladar mis sitios. Desarrollo en Visual Studio y publico sitios en una carpeta local, que luego subo a través de FTP (usando FileZilla si hay alguna diferencia).

En el servidor anterior, guardaba un archivo con el nombre _App_Offline.htmen la wwwrootcarpeta de cada sitio. Cuando cargué una nueva versión, le cambié el nombre a App_Offline.htm, lo que permitió a IIS liberar los archivos, los cargué y luego cambié el nombre del archivo nuevamente. Todo eso funcionó bien.

En el nuevo servidor, cambiar el nombre del archivo nunca permite que IIS publique los archivos, por lo que no puedo cargar los cambios. Intenté detener el sitio web en mi panel de control, pero no sirvió de nada. Intenté detener el grupo de aplicaciones. Por lo general, eso ayuda, pero volver a iniciarlo casi siempre falla. Se necesitan al menos entre 15 y 20 intentos antes de que se reinicie.

¿Alguien tiene alguna sugerencia sobre cuál podría ser el problema aquí? Me doy cuenta de que no hay mucho para continuar, pero no estoy seguro de qué más puedo decir. Aquí hay algunos detalles posiblemente relevantes...

  • Servidor Windows 2022
  • IIS 10
  • El servidor ejecuta Windows FTP
  • Todos los sitios son .NET, ya sea 6 o 7, en su mayoría Blazor pero algunas páginas de Razor

Por favor avise si hay más información que pueda proporcionar.

Gracias

Respuesta1

Por extraño que parezca, aunque no puede eliminar ni sobrescribir los archivos cuando IIS los retiene, puede cambiarles el nombre y el sitio seguirá como antes.

Entonces, una forma de solucionar esto es cambiar el nombre de los archivos críticos (que en mi experiencia generalmente es solo la DLL principal), luego copiar la nueva versión y luego usar el truco app_offline.htm para reiniciar el sitio web. Cuando se reinicie, puede eliminar los archivos (antiguos) renombrados.

En la práctica, no siempre es posible eliminar los archivos antiguos inmediatamente, pero si les cambia el nombre para que tengan el prefijo zzz, quedarán ocultos en la parte inferior de la lista de archivos y podrá eliminarlos a continuación. hora de subir.

En general, su tiempo es el mismo, pero en lugar de cambiar el nombre de app_offline.htm, cargarlo y luego volver a cambiar el nombre, cambia el nombre de la DLL, carga y cambia el nombre de app_offline.htm dos veces en rápida sucesión. La ventaja de esto es que tiene mucho menos tiempo de inactividad, básicamente el sitio solo está inactivo durante el tiempo que le lleva cambiar el nombre de app_offline.htm y cambiarle el nombre nuevamente.

Espero que ayude.

información relacionada