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!

¿Fue útil?

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.

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