Error when calling MvcHttpHandler.ExecuteRequest from custom IHttpHandler
Asked Answered
P

1

7

I have a custom IHttpHandler that calls MvcHttpHandler implemented as described in this answer.

It worked well in asp.net MVC2, but after I migrate the code to MVC4 with IISExpress 7.5, I start getting InvalidOperationException on the line:

httpHandler.ProcessRequest(HttpContext.Current);

with message:

'HttpContext.SetSessionStateBehavior' can only be invoked before 'HttpApplication.AcquireRequestState' event is raised.

ASP.NET Development Server does not make any problems.

Does anyone know what's going on here, and how to solve it?

Poly answered 12/6, 2012 at 14:22 Comment(0)
C
7

I believe you need to use httpContext.Server.TransferRequest with the MVC update.

See this question: MVC3 Application Inside Webforms Application Routing is throwing a HttpContext.SetSessionStateBehavior Error in IIS7.5

Colloidal answered 12/6, 2012 at 14:38 Comment(3)
I tried that one, but it doesn't work. I believe it's because there is no place where I tell system to use MvcHandler to process the requested path.Poly
I replaced these two lines: IHttpHandler httpHandler = new MvcHttpHandler(); httpHandler.ProcessRequest(HttpContext.Current); With: HttpContext.Current.Server.TransferRequest(Request.ApplicationPath); And it worked great!Oddson
I'm getting the same errors after upgrading our application from MVC 2 to MVC 5. Unfortunately, there is a place where Server.TransferRequest generates an error and cannot be used a replacement. Are there other options? My question: #26534224Pontiac

© 2022 - 2024 — McMap. All rights reserved.