Ошибка при развертывании приложения ASP.NET MVC NHibernate в IIS7

У меня есть приложение Asp.Net MVC, которое работает на веб-сервере разработки vs.net. Когда я публикую в 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


person Gary    schedule 04.05.2009    source источник


Ответы (2)


Вы не можете настроить nhibernate при запуске приложения. Я точно не знаю, почему, но у меня тоже была эта проблема.

Вы можете инициализировать его в Init(). Также вы можете увидеть, как это делается здесь http://code.google.com/p/sharp-architecture/source/checkout

person Sly    schedule 06.05.2009
comment
Я делаю только это, но в модуле - person Gary; 02.06.2009
comment
Привет, Trilibit, у нас та же проблема с действием инициализации Entity Framework) - person Ivan Korytin; 04.10.2012

Перенос моего кода инициализации nhibernate из Application_Start() в Init() по-прежнему не выполнялся достаточно поздно, чтобы исправить ошибку. Итак, я наткнулся на это. Решение, которое я использовал, было не из исходного сообщения, а из первого комментария jbland. По сути, он перемещает инициализацию nhibernate по первому запросу.

Следует отметить, что его код не дает вам контекста, откуда берется webSessionStorage. Это переменная-член, экземпляр которой должен быть создан в Init().

person mockobject    schedule 01.07.2010