3

IIS6 と IIS7 の両方にデプロイできるようにしたい ASP.NET MVC アプリケーションがあります。ご存知のように、IIS6 では URL に「.mvc」という名前が必要です。

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

bool usingIntegratedPipeline = HttpRuntime.UsingIntegratedPipeline;

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

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

4

2 に答える 2

3

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

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

于 2008-09-20T19:37:22.567 に答える
0

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

たとえば、ここを見てください

于 2008-09-20T19:33:22.980 に答える