2012-05-17 5 views
5

Webフォームアプリケーションのサブフォルダ内に混在したMVCアプリケーションを実行しています。MVC3アプリケーションのWebフォームアプリケーションルーティングがIIS7.5でHttpContext.SetSessionStateBehaviorエラーをスローしています

すべてがVS 2010のデバッグ(カッシーニ)で素晴らしい仕事が、私はIIS7.5

に配置されたとき、私は、次のエラーを得た:

「HttpContext.SetSessionStateBehavior」が唯一の「HttpApplication.AcquireRequestState前に呼び出すことができますイベントが発生します。

MVCアプリケーションのサブフォルダのdefault.aspxファイルの最後の行(httpHandler.ProcessRequest(HttpContext.Current);)にエラーがあります。

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); 
    } 

しかし、手動でMVCルートフォルダからホーム/インデックスに移動すると、そこからアプリケーションが正常に表示されます。

私はエラーがスローされたのを見てきました。私は、MVCルートではなくサーバー転送を扱う答えしか見つけません。

また、私はすでに任意の助けをいただければ幸いです

などのモジュールを扱うルートの私のIIS7.5の設定、統合モードで実行しているアプリケーションプールを、チェックしています。

答えて

8

同様の問題が発生しました。 MVC2以上のMVCHttpHandlerに変更があります。

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 

は以下のスニペットを試してみてください