我正在将一些 Web 应用程序从带有 IIS6 服务器的 Windows 2003 服务器迁移到带有 IIS7 的 Windows Server 2008 R2 服务器。
其中一个使用表单身份验证在 asp.net v2.0 上运行的应用程序将无法加载。
它给了我以下错误...
找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)
描述:执行当前 Web 请求时发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.IO.FileNotFoundException:找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)
现在我完全理解应用程序由于 FileNotFoundException 而无法加载某种资源,但我很难诊断应用程序中发生这种情况的具体位置,因为它没有告诉我模块是什么,也没有告诉我它正在寻找什么文件。
我已启用失败请求跟踪并获得了完整的请求跟踪,但我找不到任何能够提供有关此特定错误或所涉及模块的详细信息。
这是失败请求的日志(和 xsl 表)...
将两者下载到您的机器并打开 xml 文件。
如能提供任何关于诊断问题根本原因的建议,我们将不胜感激。
答案1
我以前见过这种情况,引用管理程序集在之前的机器上存在(比如在 GAC 中或者在其他位置注册),但是在新机器上不存在。
如果你能识别失踪管理程序集,一种方法可能是将它们配置为“复制本地”,以便它们被“bin 部署”到应用程序 bin 文件夹。
您可能想尝试运行 SysInternals'进程监控识别缺失的组件。
还出现过几次 %systemroot%\system32 文件夹中缺少本机程序集的情况,例如 msvcr71.dll。