ASP.NET在.NET 4.0上运行失败

3
该网站是使用.NET 3.5 SP1开发的,并在.NET 3.5 SP1中运行良好。但是,将其重新编译为.NET 4.0并将应用程序池更改为“集成”后,它无法运行。症状是该网站正常运行了几分钟,然后会出现以下消息:
[NullReferenceException: Object reference not set to an instance of an object.] System.Web.PipelineStepManager.ResumeSteps(Exception error) +197 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +89 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189
如果我们重新启动应用程序池,它将工作几分钟,然后出现相同的错误。
欢迎提供任何帮助。
Lau.

1
作为第一步,您可以使用Windows 调试工具中的 Symchk 获取 System.Web 的 PDB 文件,以便将 +offset 转换成行号,然后从 Microsoft 符号服务器获取源代码,查看这些行实际上在做什么。但是如果你运气好的话,可能会有人见过类似问题? - Rup
尝试使用ASP.NET 4.0应用程序池,看看是否有所不同。 - Brian Mains
使用WinDbg是最终的方法,但熟悉典型的调用堆栈会更快 :) - Lex Li
1个回答

1

从调用堆栈来看,我认为这个异常是由一个有问题的HTTP模块或处理程序引起的。

您应该能够使用Visual Studio或WinDbg进行调试。


我有一个名为'CCleanupViewStateFiles'的类,它实现了IHttpModule接口。当我把它从web.config文件中的“modules”部分(在System.webServer内)移除后,网站看起来正常了。谢谢。 - lauhw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接