Erro ao implantar ASP.NET MVC NHibernate aplicativo para IIS7
-
03-07-2019 - |
Pergunta
Tenho uma aplicação Asp.Net MVC que funciona no servidor web desenvolvimento vs.net. Quando eu publicar IIS7 eu recebo o seguinte erro. Eu passei muitas horas e ainda sem solução!
[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
Aqui está o Application_Start
protected void Application_Start()
{
ConfigureLogging();
ComponentRegistrar.RegisterComponents();
NHibernateSession.InitSqlServer2005(new WebSessionStorage(this), Settings.Default.DefaultConnString);
CacheManager.InitCaches();
}
}
Eu vim tarde para esta aplicação e não sei as melhores práticas de MVC e NHibernate
Solução
Você não pode configurar nhibernate no início da aplicação. Eu não sei exatamente por que, mas eu também tinha esse problema.
Você pode inicializar-lo em Init (). Além disso, você pode ver que é feito aqui http://code.google.com/p/sharp-architecture/source/checkout
Outras dicas
Movendo o meu código de inicialização nhibernate de Application_Start () para Init () ainda não correu bastante tarde para corrigir o erro. Então me deparei com este . A solução que eu usei foi não do post original , mas a partir de primeiro comentário por jbland. Basicamente ele se move inicialização do nhibernate para ocorrer na primeira solicitação.
Uma coisa a notar é o seu código não lhe dá o contexto de onde webSessionStorage vem. É uma variável de membro e deve ser instanciado no Init ().