【发布时间】:2012-07-14 11:11:51
【问题描述】:
我有一个网站偶尔会抛出以下错误:
“/”应用程序中的服务器错误。
无法加载文件或程序集“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 是来自第三方包 (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:此绑定在默认加载上下文中开始。
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,Version=0.85.3.365,Culture=neutral,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。动态链接库。
日志:正在尝试下载新的 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。可执行文件。
日志:正在尝试下载新的 URL 文件:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib.EXE。
日志:正在尝试下载新的 URL 文件:///C:/inetpub/wwwroot/MySite/bin/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.EXE。
【问题讨论】:
-
嗨 Shual,这只是为了 ping Kentico 团队,我过去曾与他们打过交道,他们是顶级人物。我相信他们现在会在公共论坛上看一下这个。这家伙:@PetrPalas (stackoverflow.com/users/1430236/petr-palas),他真的很好。
标签: c# asp.net iis dll sharpziplib