Erro de versão de DLL
Eu tenho um site que esporadicamente gera o seguinte erro:
Erro de Servidor na '/' Aplicação.
Não foi possível carregar o arquivo ou assembly 'ICSharpCode.SharpZipLib, Version = 0.85.3.365, Culture = neutral, PublicKeyToken = 1b03e6acf1164f73' ou uma de suas dependências. A definição de manifesto do assembly localizado não corresponde à referência de assembly. (Exceção de HRESULT: 0x80131040)
Agora eu sei que eu tenho uma dependência desta DLL, mas eu tenho a versão 0.85.5 no meu sistema. Eu eliminei sistematicamentecada versão mais antiga da DLL do servidor, recompilou tudo e republicou. Mas não importa o que eu faça, parece que depois de cada republicação, a primeira ou segunda vez que alguém visita o site, ele recebe esse erro. Então, depois de atualizar uma ou duas vezes, o erro desaparece e o site funciona normalmente.
O que torna ainda mais estranho é se eu olhar para a linha de código onde o erro é lançado:
URLRewriter.ProcessRewritingResult(status, excludedEnum, siteName, viewMode, relativePath);
URLRewriter
é uma classe de um pacote de terceiros (Kentico CMS - CMS.URLRewritingEngine.dll). Eu executei Dependency Walker nessa DLL e não encontrei nenhuma dependência em ICSharpCode.SharpZipLib.
Alguma idéia de como consertar isso?
EDITAR: Na sugestão do @ JeremyThompson, eu executei o Process Monitor para detectar o erro. Aqui está um dump de tela, com peças relevantes destacadas (e um nome de pasta obscurecido por motivos de privacidade). Você pode visualizá-lo em tamanho real clicando com o botão direito nele, etc ...
EDITAR: Aqui está um rastreamento de carga do erro. Isso ajuda?
=== Pré-vincular informações de estado ===
LOG: Usuário = MY-SERVER-12 \ Administrator
LOG: DisplayName = ICSharpCode.SharpZipLib, Versão = 0.85.3.365, Culture = neutral, PublicKeyToken = 1b03e6acf1164f73 (especificado)
LOG: Appbase = arquivo: /// C: / inetpub / wwwroot / MySite /
LOG: Inicial PrivatePath = C: \ inetpub \ wwwroot \ MySite \ bin
Chamando assembly: CMS.WebAnalytics, versão = 6.0.4377.2467, Culture = neutral, PublicKeyToken = 834b12a258f213f9.
===
LOG: Esta ligação inicia no contexto de carregamento padrão.
LOG: Usando o arquivo de configuração do aplicativo: C: \ inetpub \ wwwroot \ MySite \ web.config
LOG: Usando o arquivo de configuração do host: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config
LOG: Usando o arquivo de configuração da máquina em C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config.
LOG: Referência pós-política: ICSharpCode.SharpZipLib, Versão = 0.85.3.365, Culture = neutral, PublicKeyToken = 1b03e6acf1164f73
LOG: Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / 9760eb69 / 275bb3db / ICSharpCode.SharpZipLib.DLL.
LOG: Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / 9760eb69 / 275bb3db / ICSharpCode.SharpZipLib / ICSharpCode.SharpZipLib.DLL.
LOG: Tentativa de download do novo arquivo de URL: /// C: /inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.DLL.
LOG: Tentativa de download do novo arquivo de URL: /// C: /inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.DLL.
LOG: Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / 9760eb69 / 275bb3db / ICSharpCode.SharpZipLib.EXE.
LOG: Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / 9760eb69 / 275bb3db / ICSharpCode.SharpZipLib / ICSharpCode.SharpZipLib.EXE.
LOG: Tentativa de download do novo arquivo de URL: /// C: /inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.EXE.
LOG: Tentativa de download do novo arquivo de URL: /// C: /inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE.