2012-06-12 5 views
7

Ho un IHttpHandler personalizzato che chiama MvcHttpHandler implementato come descritto in this answer.Errore durante la chiamata di MvcHttpHandler.ExecuteRequest da IHttpHandler personalizzato

ha funzionato bene in asp.net MVC2, ma dopo la migrazione il codice per MVC4 con IISExpress 7.5, ho iniziare a ricevere InvalidOperationException sulla linea:

httpHandler.ProcessRequest(HttpContext.Current); 

con il messaggio:

' HttpContext.SetSessionStateBehavior 'può essere richiamato solo prima che venga generato l'evento "HttpApplication.AcquireRequestState" .

ASP.NET Development Server non presenta alcun problema.

Qualcuno sa cosa sta succedendo qui e come risolverlo?

risposta

7

Credo che sia necessario utilizzare httpContext.Server.TransferRequest con l'aggiornamento MVC.

Vai a questa domanda: MVC3 Application Inside Webforms Application Routing is throwing a HttpContext.SetSessionStateBehavior Error in IIS7.5

+0

ho provato, ma non funziona. Credo che sia perché non esiste un luogo in cui io dica al sistema di utilizzare MvcHandler per elaborare il percorso richiesto. – ni5ni6

+1

Questo ha funzionato per me! – kzfabi

+0

Ho sostituito queste due righe: IHttpHandler httpHandler = new MvcHttpHandler(); httpHandler.ProcessRequest (HttpContext.Current); con: HttpContext.Current.Server.TransferRequest (Request.ApplicationPath); E ha funzionato alla grande! – puddinman13