2

私は、MVC が混在する Web フォーム Web アプリケーションに取り組んでいます。このページhttp://www.packtpub.com/article/mixing-aspnet-webforms-and-aspnet-mvcの指示に従いましたが、VS2010 開発者サーバーでは正常に動作しますが、MVC 対応に公開しようとするとIIS 6 ブラウザーは、ログイン後に自動的に default.aspx にリダイレクトされず、アプリケーションのルートで 404 エラーが発生します。

私の Global.asax.cs は次のようになります。

    protected void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(RouteTable.Routes);
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
        routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = "" }
        );
    }

Application_Start メソッドで RegisterRoutes への呼び出しをコメント アウトすると、default.aspx への自動リダイレクトは機能しますが、MVC 部分は失敗します。

MVC ルーティングを有効にしながら、default.aspx への自動リダイレクトを有効にするようにルーティングをセットアップする方法について、助けが必要です。MVC パーツは、myserver/applicationname/mvcparts のような特定のパスの下にあります。

Asp.Net MVC 3 は、開発者のマシンと公開するサーバーの両方にインストールされています。

4

1 に答える 1

1

これは、IIS6 が既定で拡張子のない URL をサポートしていないためです。構成する必要があります。ASP.NET 4 を使用していない場合は、これが役に立ちます。構成しない場合。IIS6 は、フィルター/Home/Indexに関連付ける必要があることを認識していません。aspnet_isapiこれが ASP.NET アプリケーションであることさえ認識していません。.aspxこれが、従来の Web フォームで、 .NET のインストール時に aspnet_isapi フィルターに関連付けられている拡張機能を使用していた理由です。

拡張機能のない URL は、統合パイプライン モードで実行している場合、IIS7+ でそのまま使用できます。

于 2012-01-13T09:07:00.650 に答える