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

StackOverflow https://stackoverflow.com/questions/821934

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть приложение 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

Это было полезно?

Решение

Вы не можете настроить 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