none
IIS で、MVCアプリ設定で「Web サーバーは、このディレクトリの内容の一覧を表示しないように構成されています」が出ます RRS feed

  • 質問

  • お世話になります。

    Webアプリ、MVC(VS2015)で作成しレンタルサーバーに設置、IISの設定で質問です。

    アドレスを叩くと、
    「HTTP エラー 403.14 - Forbidden
    Web サーバーは、このディレクトリの内容の一覧を表示しないように構成されています。」

    がでます。

    このアプリは、
    root─AAA(プロジェクトA)
       │
       └BBB(プロジェクトB)

    のようにサーバー上に配置され https://www.abc.com/ で呼び出されるのは、AAAのプロジェクトです。

    ここは問題なく動作しています。

     ここに、BBBにもう1つのプロジェクトを配置したく今回行っています。
     IIS上で左ペインのAAA配下のBBBフォルダー右クリックで「アプリケーションへ変換」を行っています。
     「既定のドキュメント」は、継承です。
     「要求フィルター」は、ファイル名拡張子で、.cshtmlと.cshtm のみが、Trueです。非表示セグメントはデフォルトのまま触らず。

    上記エラーメッセージが出ていますので Web.config は読み込まれているものと考えます。
    (このエラーが出るまでWeb.config の記述に関するエラーが出ていた為)

    上記以外で確認したこと、

     ・https://www.abc.com/BBB/index.cshtml と無理やり動かそうとした。
      「この種類のページは処理できません。
      説明: 要求されたページの種類は、明示的に禁止されるため処理されません。拡張子 '.cshtml' が正しくない可能性があります。   下の URL が正しく入力されていることを確認してください。」

       → まあ、当然といえば当然のメッセージ。
     
      このメッセージから、IISの設定かWeb.Configの設定で何か不足し呼び出せないと推測するも「何か」がわからず身動き取れません。

     ・フォルダー配下に、Views-Home-Index.cshtml はあります。

    ファイルのコピーは、FTP接続ですべてのファイル・ディレクトリーを単純コピーしました。

    開発環境 VS2015 C# MVC(多分5.0)
    動作環境 Windows Server 2016 Datacenter

    2019年11月19日 6:27

回答

  • > 上記でいう、AAA は、Report で、BBB は、SL になります。

    そうだとすると質問者さんが上に書いたルーティングの設定、

    > url: "AAA/BBB/{controller}/{action}/{id}",

    ・・・は明らかに間違ってます。

    https://www.abc.com/BBB/ を呼んだのですよね。とすると、マッチしなくて、BBB フォルダ直下の既定のファイルを探して、無かったのでファイル一覧を表示しようとしたが、それは許可されてないので 403.14 エラーになったということに間違いなさそうです。

    テンプレートでプロジェクトを作るとデフォルトで生成される、

    namespace ProjectName
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }

    をそのまま使えば良いはずです。試してみてください。

    ちなみに、開発環境ですが以下のようにアプリケーション名 (myapplication) を設定しても、



    デフォルトのルーティング設定のままでちゃんと Home/Index が表示されます。

    • 回答としてマーク ferret001 2019年11月20日 3:32
    2019年11月20日 3:05

すべての返信

  • エラーメッセージを見ただけの想像ですが・・・

    https://www.abc.com/BBB/ を呼んだのであれば、ルーティングが働いてなくて(働いていれば Home/Index を探しに行って無ければ 404 エラーになると思います)、BBB フォルダ直下の既定のファイルを探して、無かったのでファイル一覧を表示しようとしたが、それは許可されてないので 403.14 エラーになったということではないかと思います。



    2019年11月19日 7:49
  • お世話になります。

    ルートコンフィグで下記のようにしています。

    routes.MapRoute(
           name: "aaa",
           url: "AAA/BBB/{controller}/{action}/{id}",
           defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
           );

    2019年11月20日 1:09
  • > url: "AAA/BBB/{controller}/{action}/{id}",

    それが正しいかどうかは今提供されている情報では分かりません。どういう構成になっているか、例えば以下のような情報は提示できませんか? (HomePage というサイト下に、BlogEngine と BlogEngine2 という 2 つのアプリケーションを配置した例です)

    2019年11月20日 1:29
  • お世話になります。

    上記でいう、AAA は、Report で、BBB は、SL になります。

    2019年11月20日 2:25
  • > 上記でいう、AAA は、Report で、BBB は、SL になります。

    そうだとすると質問者さんが上に書いたルーティングの設定、

    > url: "AAA/BBB/{controller}/{action}/{id}",

    ・・・は明らかに間違ってます。

    https://www.abc.com/BBB/ を呼んだのですよね。とすると、マッチしなくて、BBB フォルダ直下の既定のファイルを探して、無かったのでファイル一覧を表示しようとしたが、それは許可されてないので 403.14 エラーになったということに間違いなさそうです。

    テンプレートでプロジェクトを作るとデフォルトで生成される、

    namespace ProjectName
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }

    をそのまま使えば良いはずです。試してみてください。

    ちなみに、開発環境ですが以下のようにアプリケーション名 (myapplication) を設定しても、



    デフォルトのルーティング設定のままでちゃんと Home/Index が表示されます。

    • 回答としてマーク ferret001 2019年11月20日 3:32
    2019年11月20日 3:05
  • SurferOnWww 様、お世話になります。

    ご指摘の通りでした。

    ありがとうございました。

    以前、お世話になった件もルーティング絡みでした、その後、学んだつもりでいたのですが・・・

    大変お世話になりました。

    2019年11月20日 3:32