2010-11-19 9 views
1

まず、私がホストされたソリューションであることを説明し、IIS 6の構成と設定の方法で行うことはあまりありません。ASP.NET MVC2を使用すると、空のルートがIIS 6によって転送されていない

私は程度に作業MVC2は、私は、次のGlobal.asaxのコードを使用しています:最初のルートで

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "Default", 
      "{controller}.aspx/{action}/{id}", 
      new { action = "Index", id = "" } 
     ); 

     routes.MapRoute(
      "Root", 
      "", 
      new { controller = "Default", action = "Index", id = "" } 
     ); 
    } 

を、私は、{コントローラ}の.aspxを指定しなければならなかったIIS 6によるができません非aspxコード(またはそのような、本当にわからない)を実行する。

、以下の作品罰金です: hxxp://mysite.com/home.aspx、hxxp://mysite.com/projects.aspx、hxxp://mysite.com/contact.aspx

すべてのコントローラであり、私はそれらの尊重されたアクションも実行できます。

問題は、空のURL(つまり、hxxp://mysite.com/)を正しく実行できないため、「Directory Listing Denied」エラーが発生することです。

私が持っている質問は、root(実行されている)にあるdefault.aspxファイルであり、単純なResponse.Redirectを使用せずにホームコントローラをロードできますか?

はあなたが既定のドキュメントを持っていないため、サーバはルートフォルダ上のファイルのリストを表示しようとしていることを意味し、「ディレクトリ一覧が拒否されました」になっているという事実、 マシュー

答えて

1

"ディレクトリリストが拒否されました"という事実は、isapiファイルがMVCで動作するために一致しないことを意味します。

+1

これは最も正確な答えですが、私の問題は本当に解決されませんでした。解決策は、新しいMvcHttpRequestを作成する "default.aspx"ページを含めることでした。 – Matthew

0

をありがとう。

"Default.aspx"のようなものにDefault Documentを更新してください。あなたのホスティングプロバイダにはこのオプションが必要です。これは非常に一般的です。

+0

MVC2が問題となっている既定のドキュメントを使用していません。 Global.asaxファイルを介してすべてのルーティングを提供します。 – Matthew

+0

いいえ、あなたが見ている問題は、WebサイトではなくIISだと思います。既定のドキュメントを追加して、ドキュメントが表示されていないときにIISが要求をルーティングする場所を知るようにしてください。その後、MVCルートがリクエストを受け取ります。 –

+0

私はそれを試みました、それは単にDefault.aspxをロードし、ルートは全く拾われません。 – Matthew

0

あなたはIIS6とIIS7に、この動作を無効にすることができ

// Disable IIS looking at physical files and directories 
RouteTable.Routes.RouteExistingFiles = true; 
関連する問題