2

MVCが混在するWebフォームWebアプリケーションを作成しています。私はこのページの指示に従いましたhttp://www.packtpub.com/article/mixing-aspnet-webforms-and-aspnet-mvc VS2010デベロッパーサーバーで正常に動作しますが、MVCを有効にしたIIS 6ブラウザーに公開しようとすると、ログイン後に自動的にdefault.aspxにリダイレクトされず、ルートに404エラーが表示されますアプリケーションの私は作品をDefault.aspxのためにApplication_StartメソッドでRegisterRoutesへの呼び出し自動リダイレクトをコメントアウトが、その後MVCの部品が故障した場合WebフォームとMVCを混在させたルーティングエラー

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

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

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

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

+1

明確化:拡張子(page.aspx(web forms))を持つページへのすべての直接アクセスは正常に機能します。ログイン後、ブラウザはmyserver/myApplicationを起動し、myserver/myApplication/default.aspxは自分の開発者マシンと同様に起動しません。これが私が404を入手するところです。次に、default.aspxやsomの他のaspxページを指すようにURLを更新すると、すべてうまくいきます。 –

答えて

1

これは、IIS6がデフォルトで拡張子のないURLをサポートしていないためです。 configure itが必要です。 ASP.NET 4を使用していない場合は、this is for you。それを設定しない場合は、 IIS6は、フィルタと関連付けられる必要があることを、/Home/Indexが知りません。これはASP.NETアプリケーションであることさえ分かりません。これが、従来のWebFormsでは.NETをインストールするときにaspnet_isapiフィルタに関連付けられた.aspx拡張子を使用した理由です。

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

+0

あなたが提供したHaacksのブログへのリンクで私の問題の解決策を実際に見ることはできません。彼は403を手に入れましたが、私は404を手に入れました.Net 4がインストールされています。実際、私の問題は、私のアプリケーションでextentionless urlが動作するのですが、defaultDocument、default.aspxはそうではありません。 –

+0

@ Riddler777、どのようなデフォルト文書ですか? ASP.NETアプリケーションでは、通常、default.aspxファイルはありません。 –

+0

defaultDocumentは、IISの仮想ディレクトリの構成に設定されています。 –

関連する問題