我有一个使用
运行.NET 4.0的应用程序应用程序在开发服务器,IIS6和IIS7经典模式下运行良好。 在IIS7集成模式下运行相同的应用程序在Global.asax Application_Start之后给出NullReferenceException。
堆栈跟踪是:
[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.PipelineStepManager.ResumeSteps(Exception error) +1116
System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +89
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189
附加的调试器在异常时不会中断。但该页面显示了死亡的黄页。
我知道在哪里可以查看或挂钩修复错误?
答案 0 :(得分:3)
根据Error when deploying ASP.NET MVC NHibernate app to IIS7以及其他许多posts,如果应用程序在集成模式下运行,则不再支持在 Application_Start 中初始化 NHibernate 。我没有发现这种行为的真正原因。可能是Darins的答案是原因,但我发现在NHibernate初始化代码中无法访问HttpContext.Current。
解决方法是:
答案 1 :(得分:1)
在集成模式下运行时,Application_Start
中无法使用HttpContext,Request,Response,Session等对象。因此,请确保您的代码都没有尝试在此方法中访问它们。