2012-06-12 8 views
7

this answerで説明されているように実装されたMvcHttpHandlerを呼び出すカスタムIHttpHandlerがあります。カスタムIHttpHandlerからMvcHttpHandler.ExecuteRequestを呼び出すときのエラー

それはasp.netのMVC2にうまく働いたが、私はIISExpress 7.5とMVC4にコードを移行した後、私はライン上でInvalidOperationExceptionがを取得を開始:メッセージと

httpHandler.ProcessRequest(HttpContext.Current); 

" HttpContext.SetSessionStateBehavior 'は、 ' HttpApplication.AcquireRequestState 'イベントが発生する前にのみ呼び出すことができます。

ASP.NET開発サーバーは問題ありません。

誰もがここで何が起こっているのか、どのように解決するのかを知っていますか?

答えて

7

MVCの更新でhttpContext.Server.TransferRequestを使用する必要があります。

は、この質問を参照してください:MVC3 Application Inside Webforms Application Routing is throwing a HttpContext.SetSessionStateBehavior Error in IIS7.5

+0

は私が1つを試してみましたが、それは動作しません。私は、それが要求されたパスを処理するためにMvcHandlerを使用するようシステムに指示する場所がないためだと考えています。 – ni5ni6

+1

これは私のために働いた! – kzfabi

+0

私はこれらの2つの行を置き換えました: IHttpHandler httpHandler = new MvcHttpHandler(); httpHandler.ProcessRequest(HttpContext.Current); With: HttpContext.Current.Server.TransferRequest(Request.ApplicationPath); それは素晴らしい仕事でした! – puddinman13

関連する問題