IIS 7でHTTPModuleを実行して、さまざまなURL書き換えサービスを提供しています。例えばIIS7 HTTPModuleがMVCサブアプリケーションのパスを書き換えることができません
:
public void Init(HttpApplication context)
{
...
HttpContext.Current.RewritePath(landingPage.NewPath,
string.Empty,
landingPage.NewQueryString +
((landingPage.NewQueryString == string.Empty) ? "" : "&") +
queryString);
...
}
私はMVCで書かれた、独自のアプリケーションプールを持つサブアプリケーションを持っている:http://www.SomeSiteWithURLrewrite.com/SubMVCApplication/
このモジュールは素晴らしい作品サブアプリケーションとして作成されたMVCアプリケーションを除きます。
私が書き換えられますhttpリクエストますhttp://www.SomeSiteWithURLrewrite.com/Arbitrary/Path/To/Be/Rewritten
を私はHTTPエラー404.0受け取る - 見つかりません
404エラーページには、物理パス「C:{RootDirectory} \」に書き換えられた「http://www.SomeSiteWithURLrewrite.com/Arbitrary/Path/To/Be/Rewritten」の呼び出しがあることが示されています。 SubMVCApplication \ "を" StaticFile "のハンドラで置き換えます。
piplineがMVC要求として「HttpContext.Current.RewritePath」を認識しない理由がわかりません。それはMVCアプリケーションがそれ自身のアプリケーションにあるからですか?
は、どのように私はあなたがどの問題のResponse.Redirectを行う必要がありますRewritePath(か何か似た)を呼び出し、アプリケーションの境界を越えた場合は、IISはサブアプリケーション