質問

IIS6 と IIS7 の両方に展開できる ASP.NET MVC アプリケーションがあります。ご存知のとおり、IIS6 では URL に ".mvc" という名前が必要です。

このコードは、すべての IIS バージョンで確実に動作するように機能しますか?コード、global.asax、またはさまざまな IIS バージョンの構成ファイルで特別な調整を行う必要はありません。

bool usingIntegratedPipeline = HttpRuntime.UsingIntegratedPipeline;

routes.MapRoute(
    "Default",
    usingIntegratedPipeline ?
        "{controller}/{action}/{id}" : "{controller}.mvc/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

アップデート:言及するのを忘れていました。ISAPI はありません。ホストされた Web サイト。IIS サーバーを制御できません。

役に立ちましたか?

解決

統合パイプラインは厳密には IIS7 であるため、これで .mvc の問題は解決されるはずです。ただし、「2.0 Integrated Pipeline」を使用するように IIS7 Web サイトの設定を変更することを忘れないでください。そうしないと、同様に false が返されます。また、.mvc の asp.net isapi dll へのマッピングもセットアップする必要がありますが、これについてはすでにご存知かと思います。

MVC アプリケーションを IIS6 に展開するときに覚えておく必要があるその他の事項について、私が役に立ったと考えられるいくつかの小さな提案を以下に示します。http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression-and-performance-problems.aspx

他のヒント

ISAPI フィルターを使用して URL を書き換えると、IIS 6 を使用したまま適切な URL を取得できるようになります。

たとえば、次のようなものを見てください。 ここ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top