2012-06-12 15 views
7

Tengo un IHttpHandler personalizado que llama a MvcHttpHandler implementado como se describe en this answer.Error al llamar a MvcHttpHandler.ExecuteRequest desde IHttpHandler personalizado

funcionó bien en MVC2 asp.net, pero después de migrar el código para MVC4 con IISExpress 7.5, que comienza a recibir InvalidOperationException en la línea:

httpHandler.ProcessRequest(HttpContext.Current); 

con el mensaje:

' HttpContext.SetSessionStateBehavior 'solo se puede invocar antes de que se genere el evento ' HttpApplication.AcquireRequestState '.

ASP.NET Development Server no produce ningún problema.

¿Alguien sabe lo que está pasando aquí, y cómo solucionarlo?

Respuesta

7

Creo que necesita usar httpContext.Server.TransferRequest con la actualización de MVC.

Ver esta pregunta: MVC3 Application Inside Webforms Application Routing is throwing a HttpContext.SetSessionStateBehavior Error in IIS7.5

+0

he intentado que uno, pero no funciona. Creo que es porque no hay ningún lugar donde le digo al sistema que use MvcHandler para procesar la ruta solicitada. – ni5ni6

+1

¡Esto funcionó para mí! – kzfabi

+0

Reemplacé estas dos líneas: IHttpHandler httpHandler = new MvcHttpHandler(); httpHandler.ProcessRequest (HttpContext.Current); Con: HttpContext.Current.Server.TransferRequest (Request.ApplicationPath); ¡Y funcionó de maravilla! – puddinman13

Cuestiones relacionadas