Tengo bastante simple interna ASP.Net sitio Web que tiene problemas de carga de Microsoft.Prácticas.EnterpriseLibrary.Datos dll una vez a la semana. Aquí está el mensaje de Excepción:

System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Access is denied.
File name: 'Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null'
at foobar.Intranet.Logic.Data.UserDB.SelectByUserName(String userName)
at foobar.Intranet.Logic.Info.User.ValidateUser(String userName) in F:\Development\foobar\foobar\foobar.Intranet.Logic\Info\User.cs:line 130
at Login.ValidateUser(String username, String password) in e:\foobar\foobar.Intranet\Login.aspx.cs:line 32
=== Pre-bind state information ===
LOG: User = Unknown
LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = file:///E:/foobar/foobar.Intranet/
LOG: Initial PrivatePath = E:\foobar\foobar.Intranet\bin Calling assembly : foobar.Intranet.Logic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: E:\foobar\foobar.Intranet\web.config
LOG: Using host configuration file: \\?\C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet.config
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/foobar.intranet/668896d8/82d7e51c/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/foobar.intranet/668896d8/82d7e51c/Microsoft.Practices.EnterpriseLibrary.Data/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
LOG: Attempting download of new URL file:///E:/foobar/foobar.Intranet/bin/Microsoft.Practices.EnterpriseLibrary.Data.DLL.
ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.

Cosas de la nota:

  • Un simple Restablecimiento de IIS corrige el problema.
  • Hemos tenido el mismo código que se ejecuta en un único servidor web sin problemas. Luego nos trasladamos al sitio para dos nuevos, con equilibrio de carga (uso de sticky sessions) servidores web (todos los tres de Windows Server 2003 R2 Standard Edition SP1). Ahora cada una de las de equilibrio de carga de servidores web lanzar esta excepción una vez a la semana que acaba de salir de la azul.
    • La única gran diferencia que se me ocurre, es que se me ha instalado la 4.0 .NET framework en el equilibrio de la carga de los servidores. El sitio web sigue funcionando bajo ASP.NET 2.0, así que no veo cómo esto podría ser un problema
  • He configurado el servicio de index server para no buscar en el «Temporal ASP.NET» Archivos de la carpeta, pero no ayuda.
  • Utilizamos Microsoft.Prácticas.EnterpriseLibrary.Datos dll todas las partes de nuestro sitio. Casi cada página, utiliza nuestra lógica dll que a su vez utiliza la EnterpriseLibrary dll.
  • Mientras que los errores en donde ocurre una vez, miré a ver qué procesos se cierre el archivo dll en el «Temporal ASP.NET los Archivos de carpeta», y no fue diferente de los bloqueos en el servidor en el que estaba trabajando bien.
  • Una vez que el error se inicia, los errores cada vez hasta un iisreset se realiza

Un punto de vista cualquiera podría ofrecer sería muy apreciada. Déjeme saber si me he perdido algo.

Gracias!

Estoy asumiendo que una vez que se produce este problema, a continuación, las llamadas a la asamblea fallar con el mensaje de error anterior (hasta un iisreset en que se realiza).
Tuzo – Su suposición es correcta. Una vez que el problema comienza, todas las llamadas a la carga de la asamblea fallar (hasta un iisreset en que se realiza).
Una cosa interesante de la que acabo de descubrir, es que el Directorio de IIS de Seguridad, el Acceso Anónimo usuario no era IUSR_MachineName, pero IUSR_OldMachineName. Desde entonces he actualizado el nombre de usuario bajo el administrador de usuarios y grupos, pero tuve que actualizar manualmente el IIS cuenta de usuario Anónimo. Alguien sabe si eso le afectaría?
Yo estaba recibiendo el mismo error cuando yo estaba tratando de cargar .Net 2.0 de la asamblea .Net 4.0 de la aplicación.

OriginalEl autor Daryl | 2010-06-30

2 Comentarios

  1. 3

    Echar un vistazo a la Asamblea De La Unión Visor De Registro. Se podría apuntar en la dirección correcta.

    He tenido un rápido vistazo a otros de MODO que las respuestas y una persona sugirió que la aplicación se han desarrollado en contra de una versión firmada de la DLL, pero la producción en tiempo de ejecución sólo tiene acceso a un unsigned versión. Parece que su producción es la carga de un unsigned asamblea (PublicKeyToken=null).

    Abrí la Asamblea de la Unión Visor de Registro, pero no se presentó. He actualizado la ubicación del registro en una ubicación personalizada, de forma que no aclararlo. Supongo que me va a dar la misma información que el mensaje de excepción después de «=== Pre-enlazar la información de estado ===». Me pregunto si la «Política no se aplica para hacer referencia en este momento» tiene algo que ver con ella? Tanto la producción y el desarrollo son el uso de una firma. Y las cuestiones que los usuarios estaban describiendo, se fueron sucediendo cada vez, no una vez a la semana.

    OriginalEl autor David Neale

  2. 0

    Instalar el siguiente paquetes de nuget:

    Instalar el Paquete de log4net -Versión 2.0.0
    Instalar el Paquete de linqtoexcel

    Instalar-Sistema De Paquetes.De datos.Sqlite.x86 -Versión 1.0.88.0
    Instalar El Paquete De ServiceStack -Versión 3.9.71
    Instalar El Paquete De ServiceStack.OrmLite.Sqlite32 -Versión 3.9.71

    OriginalEl autor user6746212

Dejar respuesta

Please enter your comment!
Please enter your name here