¿Cómo despliegues mango ASP.NET
-
18-09-2019 - |
Pregunta
i solamente fue capaz de leer hasta que ASP.NET detecta cambios en los archivos específicos como archivos aspx, DLLs y otros. Se reiniciará, terminar las peticiones de funcionamiento actuales y nuevas solicitudes con los nuevos archivos desplegados.
Pero lo que está sucediendo en el tiempo desde el primer archivo copiado beeing hasta que el último ha sido cambiado? Si Puedo cambiar el primer archivo DLL, y luego llega una petición, pero los otros archivos DLL están en una versión anterior - va sólo para dormir? Se asp.net esperar unos segundos y sólo comienza en sí nuevo después de X segundos sin (relevante) presentar cambios?
Thx!
Solución
Usted tiene 4 preguntas aquí: ¿Qué está sucediendo en el tiempo desde el primer archivo copiado beeing hasta que el último se ha intercambiado -? Hay un tiempo determinado, mientras .net espera para ver si cualquier otro archivo se han modificado antes de que se pone en marcha el nuevo dominio de aplicación con la nueva carga de DLL.
Si Puedo cambiar el primer archivo DLL, y luego llega una petición, pero los otros archivos DLL están en una versión anterior - se acaba chocar -? Depende de qué código cambios están en los DLL . Si el nuevo archivo DLL puede funcionar bien con código antiguo, entonces estará bien. Pero si el dominio de aplicación empiece a girar el nuevo archivo DLL y que la nueva DLL depende de algo que aún no ha llegado ... entonces sí, va a lanzar una excepción.
ASP.NET Espere algunos segundos y sólo comienza en sí nuevo después de X segundos de ningún cambio de archivo (relevante) - Sí. No he sido capaz de encontrar el tiempo que el tiempo es. Pero en mi experiencia personal que está en algún lugar en el segundo rango de 1-2.
También encontré una buena explicación aquí en dominio de aplicación y volver a la carga de la DLL: http://odetocode.com/Articles/305.aspx
Si se copia un archivo DLL actualizada en una subdirectorio bin de la aplicación, la ASP.NET tiempo de ejecución reconoce que hay nuevo código se ejecute. Desde ASP.NET no se puede intercambiar la DLL en el vigente Dominio de aplicación, se inicia un nuevo dominio de aplicación. El dominio de aplicación de edad es la “fuga parado”, es decir, las solicitudes existentes se les permite terminar la ejecución, y una vez que están acabados del Dominio de aplicación se puede descargar. El nuevo Dominio de aplicación se inicia con el nuevo código y comienza a tomar todas las nuevas solicitudes.
Normalmente, cuando una DLL se carga en una proceso, el proceso bloquea el archivo DLL y no se puede sobrescribir el archivo en el disco. Sin embargo, tienen una característica AppDomains conocido como instantáneas que permite asambleas permanezcan desbloqueado y reemplazable en el disco.
El tiempo de ejecución inicializa ASP.NET con Instantáneas habilitada para la papelera directorio. El dominio de aplicación copiará cualquier dll que necesita desde el directorio bin de una ubicación temporal antes de bloquear y la carga de la DLL en la memoria. Instantáneas nos permite sobrescribir cualquiera DLL en el directorio bin durante una actualización de la web sin tener aplicación en línea.