tag route net form asp asp.net

asp.net - route - form in asp net core



¿Mi aplicación ASP.NET deja de ejecutarse si sobrescribo las DLL? (2)

Supongamos que mi aplicación ASP.NET está haciendo 4 llamadas a bases de datos separadas. Si después de la segunda llamada, sobrescribo los archivos DLL en la carpeta BIN, ¿detiene la aplicación para que no continúe su procesamiento, lo que hace que las llamadas a la base de datos de la tercera y la cuarta no funcionen?

Cualquier consejo sería muy apreciado, Mosh


ASP.NET realiza una cosa llamada copia de sombra en varios recursos, incluidos archivos DLL y archivos ResX. Cuando el marco accede a un archivo, se bloquea, lo que impide el acceso directo. Para evitar el bloqueo de archivos dentro de root / bin o root / App * _Resources (por ejemplo), copia estos recursos a un directorio predeterminado.

[Editar]
El directorio predeterminado por defecto es algo como

C: / WINDOWS / Microsoft.NET / Framework / v4.0.30319 / Archivos temporales de ASP.NET / demo1 / 9b9144a7 / 8665ac07

donde demo1 es el nombre de su aplicación y los directorios anidados que (supongo) están en contra del nombre descriptivo de AppDomain para los recursos contenidos.

Por ejemplo, tengo un directorio llamado dbresourceproviderweb de un ejemplo de proveedor de recursos en MSDN escrito por Michelle Bustamante. Dentro de ese directorio, hay dos carpetas: c8b872e2 y 7fc33f08. Para ir más lejos, los recursos compilados para el español ecuatoriano están bajo ... / dbresourceproviderweb / c8b872e2 / 97074f76 / es-EC y ... / dbresourceproviderweb / 7fc33f08 / ac65ebd3 / es-EC
[/Editar]

Puede cambiar este directorio en Application_Start como se explica aquí: el evento AssemblyResolve no se activa durante la compilación de un ensamblaje dinámico para una página aspx

Puede desactivar la copia sombra en el web.config:

<hostingEnvironment shadowCopyBinAssemblies="false" />

Cuando uno de estos archivos en la sombra se actualiza dentro de su aplicación, se genera un nuevo dominio de aplicación y se permite que finalicen las solicitudes en el dominio de aplicación actual mientras que todas las nuevas solicitudes se dirigen al nuevo dominio de aplicación.

Para obtener más información sobre las Copias de la Sombra y los Dominios de la Aplicación, consulte el artículo de MSDN: http://msdn.microsoft.com/en-us/library/ms404279.aspx

Edit2: Acabo de enterarme de que puede modificar el tiempo requerido entre las operaciones de copia de archivos para generar un dominio de aplicación.

En el elemento system.web / httpRuntime, puede especificar waitChangeNotification y maxWaitChangeNotification para que no se genere un nuevo dominio de aplicación para cada archivo copiado. Ver MSDN .

Aunque realmente no hay ejemplos para este comportamiento en MSDN, es bueno mantenerlo como referencia para la configurabilidad de HttpRuntime.


Los ensamblajes se cargan en el dominio de la aplicación, y el dominio de la aplicación vigila el directorio. Si reemplaza los ensamblajes, reciclará la aplicación y recargará los ensamblajes. Así que sí, su tercera / cuarta llamada fallaría.