我有一个网站偶尔会抛出以下错误:
“/”应用程序中的服务器错误。
无法加载文件或程序集 'ICSharpCode.SharpZipLib, Version=0.85.3.365, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
现在我知道我确实依赖于这个 DLL,但我的系统上有 0.85.5 版本。我系统地从服务器中删除了所有旧版本的 DLL,重新编译所有内容并重新发布。但无论我做什么,似乎每次重新发布后,有人访问该网站的前一两次,他们都会收到此错误。然后刷新一次或两次后,错误消失并且站点正常运行。
更奇怪的是,如果我查看引发错误的代码行:
URLRewriter.ProcessRewritingResult(status, excludedEnum, siteName, viewMode, relativePath);
URLRewriter
是来自 3rd 方包 ( Kentico CMS - CMS.URLRewritingEngine.dll) 的类。我在那个 DLL 上运行了 Dependency Walker,发现 ICSharpCode.SharpZipLib 上没有任何依赖关系。
任何想法如何解决这一问题?
编辑:在@JeremyThompson 的建议下,我运行进程监视器来捕获错误。这是一个屏幕转储,突出显示了相关部分(出于隐私原因,一个文件夹名称被隐藏了)。您可以通过右键单击它来查看它的全尺寸等...
编辑:这是来自错误的负载跟踪。这有帮助吗?
=== 预绑定状态信息 ===
日志:用户 = MY-SERVER-12\Administrator
日志:DisplayName = ICSharpCode.SharpZipLib,版本=0.85.3.365,文化=中性,PublicKeyToken=1b03e6acf1164f73(完全指定)
日志:Appbase = file:///C:/inetpub/wwwroot/MySite/
日志:初始 PrivatePath = C:\inetpub\wwwroot\MySite\bin
调用程序集:CMS.WebAnalytics,Version=6.0.4377.2467,Culture=neutral,PublicKeyToken=834b12a258f213f9。
===
LOG:此绑定在默认加载上下文中开始。
日志:使用应用程序配置文件:C:\inetpub\wwwroot\MySite\web.config
LOG:使用主机配置文件:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG:使用 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config 中的机器配置文件。
日志:政策后参考:ICSharpCode.SharpZipLib,版本=0.85.3.365,文化=中性,PublicKeyToken=1b03e6acf1164f73
日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib.DLL。
日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.DLL。
日志:尝试下载新的 URL 文件:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.DLL。
日志:正在尝试下载新的 URL 文件:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.DLL。
日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib.EXE。
日志:正在尝试下载新的 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/9760eb69/275bb3db/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE。
日志:正在尝试下载新的 URL 文件:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.EXE。
日志:正在尝试下载新的 URL 文件:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE。