Вопрос по asp.net-mvc-3 – Приложение MVC3 внутри приложения Webforms Маршрутизация выдает ошибку HttpContext.SetSessionStateBehavior в IIS7.5

5

Я запускаю смешанное приложение MVC внутри подпапки приложения веб-форм.

Все отлично работало в отладке VS 2010 (Cassini), но когда я развернул на IIS7.5

Я получил следующую ошибку:

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

Это ошибки на последней строке (httpHandler.ProcessRequest(HttpContext.Current);) вdefault.aspx файл подпапки приложения 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);
}

Однако, если я вручную перейду к Home / Index из корневой папки MVC, я смогу видеть свое приложение оттуда.

Я посмотрел на появившуюся ошибку и нахожу только ответы, связанные с передачей на сервер, а не с маршрутами MVC.

Я также уже проверил мойIIS7.5 настройка модуля обработки маршрута, пула приложений, работающего в интегрированном режиме, и т. д.

Любая помощь будет оценена.

Ваш Ответ

1   ответ
8

MVC2 и выше.

Вы должны изменить его, чтобы использоватьhttpContext.Server.TransferRequest.

Попробуйте приведенный ниже фрагмент кода:

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

Похожие вопросы