Tengo un sitio web que de forma esporádica, arroja el siguiente error:

Error de servidor en la Aplicación’/’.

No se pudo cargar el archivo o ensamblado ‘ICSharpCode.SharpZipLib, Version=0.85.3.365, Culture=neutral, PublicKeyToken=1b03e6acf1164f73’ o una de sus dependencias. La encuentra de manifiesto del ensamblado definición no coincide con la referencia de ensamblado. (Excepción de HRESULT: 0x80131040)

Ahora sé que tengo una dependencia de este DLL, pero tengo la versión 0.85.5 en mi sistema. He sistemáticamente eliminados cada versión anterior del archivo DLL del servidor, vuelve a compilar todo y volver a publicar. Pero no importa lo que haga, parece que después de cada publicar, las primeras una o dos veces que alguien visita el sitio, se obtiene este error. Luego, después de actualizar una o dos veces, el error desaparece y el sitio funciona como normal.

Lo que lo hace aún más raro es que si miro a la línea de código donde se produce el error:

URLRewriter.ProcessRewritingResult(status, excludedEnum, siteName, viewMode, relativePath);

URLRewriter es una clase de una 3 ª parte del paquete (Kentico CMS – CMS.URLRewritingEngine.dll). Corrí Dependency Walker en ese DLL y se encontró sin dependencias de ningún tipo en ICSharpCode.SharpZipLib.

Alguna idea de cómo solucionar este problema?

EDICIÓN: En @JeremyThompson la sugerencia, me encontré con el Monitor de Procesos para detectar el error. He aquí un volcado de pantalla, con piezas pertinentes de relieve (y un nombre de carpeta oscurecida por razones de privacidad). Puedes verla a tamaño completo haciendo clic derecho sobre ella, etc…

DLL versiones de error

EDICIÓN: Aquí está una carga traza del error. ¿Esta ayuda?

=== Pre-enlazar la información de estado ===

De REGISTRO: Usuario = MY-SERVER-12\Administrador

De REGISTRO: DisplayName = ICSharpCode.SharpZipLib, Version=0.85.3.365, Culture=neutral, PublicKeyToken=1b03e6acf1164f73
(Totalmente especificado)

De REGISTRO: Appbase = file:///C:/inetpub/wwwroot/Misitio/

De REGISTRO: Inicial PrivatePath = C:\inetpub\wwwroot\MySite\bin

Llamamiento de la asamblea : el CMS.WebAnalytics, Version=6.0.4377.2467, Culture=neutral, PublicKeyToken=834b12a258f213f9.

===

De REGISTRO: Este enlace se inicia en defecto de carga de contexto.

De REGISTRO: Uso del archivo de configuración de aplicación: C:\inetpub\wwwroot\MySite\web.config

De REGISTRO: Uso del archivo de configuración de host: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config

De REGISTRO: Uso del archivo de configuración de máquina de C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.

De REGISTRO: Post-política de referencia: ICSharpCode.SharpZipLib, Version=0.85.3.365, Culture=neutral, PublicKeyToken=1b03e6acf1164f73

De REGISTRO: Intentar descargar de nuevo URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporal ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib.DLL.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporal ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.DLL.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.DLL.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.DLL.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporal ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib.EXE.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporal ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.EXE.

De REGISTRO: Intentar descargar de nuevo URL file:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE.

Hola Shual, esto solo para hacer ping a la Kentico equipo, he tratado con ellos en el pasado y que son de primera tíos. Estoy seguro de que sería echar un vistazo a esta ahora en un foro público. Este chico: @PetrPalas (stackoverflow.com/users/1430236/petr-palas)él es realmente agradable.

OriginalEl autor Shaul Behr | 2012-07-15

7 Comentarios

  1. 5

    Ahora sé que tengo una dependencia de este DLL, pero tengo la versión
    0.85.5 en mi sistema. He sistemáticamente eliminados cada mayores versión de la DLL desde el servidor, vuelve a compilar todo y volver a publicar.

    Suena como la ‘dependencia’ está a la espera de la MAYORES versión de la DLL. ¿Por qué no REEMPLAZAR todas las copias de la más RECIENTE versión (0.85.5) en el sistema, con el MAYORES versión (0.85.3.365)? (Asegúrese de comprobar el » bin » de la carpeta de la aplicación web y la ‘GAC’: c:\windows\assemblies)

    Si usted necesita, usted puede descargar la versión anterior aquí: http://sourceforge.net/projects/sharpdevelop/files/SharpZipLib/0.85.3/

    NOTA:

    • Después de reemplazar la DLL, detener IIS y borrar todos los Temporales ASP.Net
      los archivos. E. g.:
      C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET
      Los archivos de
    • TAMBIÉN: Recuerde actualizar su Solución de Visual Studio para que
      las referencias a la versión anterior.

    Saludos

    Pete

    Bueno, resulta que yo no necesito nada en la más reciente versión de la DLL, por lo que esta solución que realmente funciona para mí. Aunque esta es una muy insatisfactorio solución desde un punto de vista intelectual, se hace el truco, y así responder de crédito y de recompensa para usted. Gracias!

    OriginalEl autor Peter

  2. 4

    Que mencionar que las primeras una o dos veces que un usuario visita el sitio de obtener el error.

    Para solucionar el problema te sugiero que ejecutar El Monitor De Procesos y ver donde su busca para encontrar y cargar la asamblea.

    -iisreset

    -iniciar el Monitor de Procesos en el servidor

    -ver un par de páginas y reproducir el problema tan pronto como sea posible

    -detener el ProcessMonitor de seguimiento

    -búsqueda en el proceso de seguimiento de seguimiento para ICSharpCode.SharpZipLib

    Si eso no funciona, a ver qué cosa era la causa:

    -guardar el ProcessMonitor resultados como CSV

    -abrir el archivo CSV en Excel

    -filtro de todas las columnas

    -elija de la lista desplegable de la columna con el Acceso Denegado o …

    Esto debería decir cuál es el problema con el error Could not load file or assembly

    Gracias por el consejo. Yo en realidad encontramos con que el Proceso de trabajo de IIS (w3wp.exe) está buscando v0.85.3 de esa DLL en el registro y el sistema de archivos y pone «NO se ENCUENTRA el NOMBRE» o «la RUTA NO ENCONTRADA»…. hasta un par de cientos de microsegundos más tarde, cuando se encuentra la versión 0.85.5 de la DLL. ¿Qué es lo que nos dicen?
    En realidad, parece ser el intento (y no) a «Crear Archivo» en la GAC, a continuación, en la .NETO de la carpeta de archivos temporales, antes de lograr hacer una «crear archivo» en la carpeta bin de mi sitio web. ¿Por qué «crear archivo», en lugar de «leer el archivo»?

    OriginalEl autor Jeremy Thompson

  3. 4

    Resulta que Kentico tiene su propia dependencia de ICSharpCode.SharpZipZip.dll – y esperando encontrar la versión anterior. He encontrado una solución similar aquí. Mediante la inserción de la siguiente bloque en mi web.archivo de configuración, parece que finalmente han desterrado de este error!

    <runtime>
      <assemblyBinding>
        <dependentAssembly>
          <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73"/>
          <bindingRedirect oldVersion="0.85.3.365" newVersion="0.85.5.452"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>

    Lo que todavía no entiendo es, ¿por qué no Dependencia Tracker muestran esta dependencia?

    EDICIÓN: Oh, querido, esto no se resuelve después de todo. Esto parece ocurrir con menos frecuencia ahora, pero después de reiniciar IIS hoy en día, uno de nuestros probadores consiguió el viejo mensaje de error de nuevo! 🙁

    Esto es lo que me hubiera doen para la redirección de enlace => cualquier cosa, desde 0 .85.5.452 (lo que significa que se incluyen .85.3.365 … uso 85.5.452. por ejemplo. <bindingRedirect oldVersion="0.0.0.0-0.85.5.452" newVersion="0.85.5.452"/>

    OriginalEl autor Shaul Behr

  4. 1

    Creo que estaban en la pista de la derecha con la redirección de enlace. Sin embargo, permítanme sugerir que en lugar de enlazar su aplicación en contra de la versión anterior, se intenta enlazar el dependiente de la asamblea en contra de la versión más reciente.

    Generalmente, obligando a la versión anterior es la peor opción, porque aunque se podría solucionar el depdenent de la asamblea, puede inyectarse errores de compatibilidad en el código que depende de la versión más reciente.

    No entiendo… yo soy de unión en contra de la versión más reciente…? O ¿puedo obtener algo mezclado en mi código?

    OriginalEl autor Brandon Langley

  5. 0

    Intenta sujetar a AppDomain.CurrentDomain.AssemblyResolve, así que usted puede ver cuando la/lo ensamblado se carga y se establecen explícitamente la ubicación de carga.

    Cómo? Donde? Ejemplo de código por favor?
    msdn.microsoft.com/en-us/library/…
    O utilizar el Enlace de Ensamblado Visor de Registro (Fuslogvw.exe para ver cómo las asambleas están siendo sondeado msdn.microsoft.com/en-us/library/e74a18c4(v=vs 71).aspx —- y ver —- stackoverflow.com/questions/255669/…
    Este post no es un real intento de responder a la pregunta. Por favor, tenga en cuenta que Desbordamiento de la Pila no funciona como un foro de discusión, es una P&Un sitio donde cada post es una pregunta o una respuesta a una pregunta. Los postes también puede tener comentarios – pequeñas frases como ésta, que puede ser utilizado para la crítica o la solicitud de aclaración de un autor. Este debe ser un comentario o un nueva pregunta.

    OriginalEl autor user626528

  6. 0

    Son los Kentico CMS y su Aplicación definido en el mismo grupo de Aplicaciones? Pruebe a ejecutar la Aplicación en su propio grupo de Aplicaciones.

    Lo que podría estar sucediendo es que, cuando un trabajador proceso de reciclado, a veces, su aplicación es la primera que se añade, y a veces la Kentico CMS es el primero en ser añadido, y esto cambia la forma en la ICSharpCode.SharpZipLib está resuelto.

    Cuando lo refrescante de una vez o dos veces por la posibilidad de que su aplicación se carga primero que significa que funciona.

    ¿Qué es el grupo de Aplicaciones de IIS y Asp.Net?

    De ACTUALIZACIÓN: Es la aplicación de un Sitio Web (compilado en el primer acceso), o en la Web del Proyecto (pre-compilado en Visual Studio). Si se trata de un Sitio Web, entonces usted podría convertir a un Proyecto Web y tratar de que ?

    Todos están desplegados en el mismo sitio web, así que asegúrese de que está utilizando el mismo grupo de Aplicaciones… 🙂

    OriginalEl autor Colin Smith

Dejar respuesta

Please enter your comment!
Please enter your name here