2009-05-04 9 views
3

J'ai une application Asp.Net MVC qui fonctionne sur le serveur Web de développement de vs.net. Lorsque je publie sur IIS7, j'obtiens l'erreur suivante. J'ai passé de nombreuses heures et toujours pas de solution!Erreur lors du déploiement de l'application ASP.NET MVC NHibernate 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 

Voici le Application_Start

protected void Application_Start() 
     { 


       ConfigureLogging(); 


       ComponentRegistrar.RegisterComponents(); 


       NHibernateSession.InitSqlServer2005(new WebSessionStorage(this), Settings.Default.DefaultConnString); 


       CacheManager.InitCaches(); 

      } 
     } 

Je suis arrivé en retard à cette application et ne sais pas les meilleures pratiques de MVC et NHibernate

Répondre

5

Vous ne pouvez pas configurés NHibernate dans le démarrage de l'application. Je ne sais pas exactement pourquoi, mais j'ai aussi eu ce problème.

Vous pouvez l'initialiser dans Init(). Vous pouvez également voir que c'est fait ici http://code.google.com/p/sharp-architecture/source/checkout

+0

je di juste cela, mais dans un module – Gary

+0

Bonjour Trilibit, nous haму le même problème avec l'action de Entity Framework) –

1

Le déplacement de mon code d'initialisation nhibernate de Application_Start() à Init() ne s'est toujours pas exécuté suffisamment tard pour corriger l'erreur. Donc je suis tombé sur this. La solution que j'ai utilisée était pas du message original, mais le premier commentaire de jbland. Fondamentalement, il déplace l'initialisation de nhibernate à se produire sur la première demande.

Une chose à noter est son code ne vous donne pas le contexte où webSessionStorage vient. C'est une variable membre et doit être instanciée dans Init().

Questions connexes