我有一个在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的最佳实践

有帮助吗?

解决方案

您无法在应用程序启动时配置nhibernate。我不知道为什么,但我也有这个问题。

您可以在Init()中初始化它。你也可以看到它在这里完成 http://code.google.com/p/sharp-architecture/source/checkout

其他提示

将我的nhibernate初始化代码从Application_Start()移动到Init()仍然没有运行得太晚以修复错误。所以我偶然发现了这个。我使用的解决方案是不是来自原始帖子,而是来自jbland的第一条评论。基本上它会在第一次请求时将nhibernate的初始化移动。

有一点需要注意的是,他的代码没有为您提供webSessionStorage来源的背景信息。它是一个成员变量,必须在Init()中实例化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top