将 ASP.NET MVC NHibernate 应用程序部署到 IIS7 时出错
Posted
技术标签:
【中文标题】将 ASP.NET MVC NHibernate 应用程序部署到 IIS7 时出错【英文标题】:Error when deploying ASP.NET MVC NHibernate app to IIS7 【发布时间】:2009-05-04 20:34:47 【问题描述】:我有一个在 vs.net 开发 Web 服务器中工作的 Asp.Net MVC 应用程序。当我发布到 IIS7 时,出现以下错误。我花了好几个小时,仍然没有解决办法!
[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.PipelineStepManager.ResumeSteps(Exception error) +929
System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +91
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +508
这里是 Application_Start
protected void Application_Start()
ConfigureLogging();
ComponentRegistrar.RegisterComponents();
NHibernateSession.InitSqlServer2005(new WebSessionStorage(this), Settings.Default.DefaultConnString);
CacheManager.InitCaches();
我来晚了,不知道 MVC 和 NHibernate 的最佳实践
【问题讨论】:
【参考方案1】:您不能在应用程序启动时配置休眠。我不知道为什么,但我也遇到了这个问题。
您可以在 Init() 中对其进行初始化。你也可以看到它在这里完成 http://code.google.com/p/sharp-architecture/source/checkout
【讨论】:
我只是这个,但在一个模块中 您好 Trilibit,我们在 Entity Framework 初始化操作中遇到了同样的问题)【参考方案2】:将我的休眠初始化代码从 Application_Start() 移动到 Init() 仍然没有运行足够晚来修复错误。所以我偶然发现了this。我使用的解决方案不是来自原始帖子,而是来自 jbland 的第一条评论。基本上,它会将 nhibernate 的初始化移动到第一个请求时发生。
需要注意的一点是,他的代码没有为您提供 webSessionStorage 来自何处的上下文。它是一个成员变量,必须在 Init() 中实例化。
【讨论】:
以上是关于将 ASP.NET MVC NHibernate 应用程序部署到 IIS7 时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 应用程序中管理和部署架构(使用 NHibernate)
ASP.NET MVC 3 和 NHibernate 脚手架
ASP.NET MVC+WCF+NHibernate+Autofac 框架组合