我刚收到一条意外的错误消息:
错误消息:无法加载文件或
程序集“删除报告内容”或
它的一个依赖项。所在地
程序集的清单定义执行了
与程序集引用不匹配。
(来自hresult的异常:0x80131040)
我有一个ASP.NET网站,有一个abotu 10个项目,把它编译成dlls和bin目录。报告内容是这些项目之一。在过去,我成功地将新版本的文件(dll、pdb和xml)复制到bin目录中,并回收了应用程序池,它只是自己获取了新版本。这一次我想“我不应该在站点上有调试版本”,所以我构建了一个发布版,只是复制了DLL和XML文件,并要求部署人员删除PDB。
当我被告知一切都完成后,我试图访问该网站,并收到了上述错误消息。
令我吃惊的是,它提到的程序集是“删除报告内容”,我不知道“删除”可能来自哪里。
我不知道会出什么问题。所以我希望你能帮忙:
我的选择是:
1)我应该使用调试版本,因为已经有了调试版本。
2)我的部署人员没有删除不再相关的PDB。
3)应用程序池回收未正确刷新代码,它期望使用旧的dll并获取新的dll。
4)其他地方出了一些真正不应该发生的问题。
非常感谢您的任何想法或建议…我需要部署这个代码,在我知道第一次出了什么问题之前,我真的不敢再这样做…
值得一提的是,我只有通过别人才能接触到生活环境,所以我自己无法轻松检查那里的任何东西。
如果它在这里很有用的话,这里是伴随的堆栈跟踪:
Error Target: System.Reflection.Assembly _nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.Assembly, System.Threading.StackCrawlMark ByRef, Boolean, Boolean)
Stack Trace:
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)