2012-05-17 9 views
5

Estoy ejecutando una aplicación mixta MVC dentro de una subcarpeta de una aplicación de formularios web.Aplicación web MVC3 Formas web en línea El enrutamiento de aplicaciones genera un error HttpContext.SetSessionStateBehavior en IIS7.5

Todo funcionó muy bien en VS 2010 depuración (Cassini) pero cuando desplegué a IIS7.5

me dio el siguiente error:

'HttpContext.SetSessionStateBehavior' sólo puede ser invocado antes 'HttpApplication.AcquireRequestState 'evento se plantea.

Errores en la última línea (httpHandler.ProcessRequest (HttpContext.Current);) en el archivo default.aspx de la subcarpeta de la aplicación MVC.

public void Page_Load(object sender, System.EventArgs e) 
     { 
      string pathToRewriteTo = Request.Path.ToLowerInvariant().Replace("default.aspx", "Home/Index"); 
     HttpContext.Current.RewritePath(pathToRewriteTo, false); 
     IHttpHandler httpHandler = new MvcHttpHandler(); 
     httpHandler.ProcessRequest(HttpContext.Current); 
    } 

Sin embargo, si puedo navegar manualmente a Inicio/Índice de la carpeta raíz MVC puedo ver mi multa aplicación desde allí.

He buscado el error y solo encuentro respuestas relacionadas con transferencias de servidor y no rutas MVC.

También he comprobado ya la configuración de mi IIS7.5 para el módulo de manipulación ruta, del grupo de aplicaciones que se ejecutan en el modo integrado, etc.

Cualquier ayuda sería muy apreciada.

Respuesta

8

Nos enfrentamos a un problema similar. Hay cambios en MVCHttpHandler en MVC2 y superior.

Debe cambiarlo para usar httpContext.Server.TransferRequest.

Pruebe el siguiente fragmento:

var httpContext = HttpContext.Current; 
httpContext.Server.TransferRequest(Url, true); // change to false to pass query string parameters if you have already processed them 
Cuestiones relacionadas