質問

まず、私はホストされたソリューションを使用していることを説明させてください。IIS6の構成と設定の方法でできることはあまりありません。

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

最初のルートでは、IIS 6が非ASPXコードを実行できないため(またはそのようなもの、本当に確信していない)、{Controller} .aspxを指定する必要がありました。

これは問題ありません。次の動作:hxxp://mysite.com/home.aspx、hxxp://mysite.com/projects.aspx://mysite.com/contact.aspx

これはすべてコントローラーであり、尊敬されるアクションも実行できます。

問題は、空のURLを適切に実行できないこと(つまり、hxxp://mysite.com/)で、「ディレクトリリストが拒否された」エラーを提供します。

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

マシュー、ありがとう

役に立ちましたか?

解決

「ディレクトリリストが拒否された」を取得しているという事実は、ISAPI FiletrがMVCとの作業と一致しないことを意味します。

他のヒント

「ディレクトリリストが拒否された」を取得しているという事実は、デフォルトのドキュメントがないため、サーバーがルートフォルダーにファイルのリストを表示しようとしていることを意味します。

デフォルトのドキュメントを「default.aspx」のようなものに更新します。ホスティングプロバイダーには、このためのオプションが必要です。これは非常に一般的です。

この動作は、IIS6とIIS7で無効にすることができます

// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top