web-dev-qa-db-ja.com

HTTPエラー403.14 - 禁止 - Webサーバーはこのディレクトリの内容を表示しないように設定されています

Visual Studio 2012で新しい空のWebサイトを作成し、実行時にクリックした(つまりブラウザで表示した)と、このエラーが表示されます。

HTTPエラー403.14 - 禁止Webサーバーは、このディレクトリの内容を表示しないように設定されています。

IISに移動して[ディレクトリの参照]をクリックし、[ディレクトリの参照]が有効になっていることを確認しましたが、それでもこのエラーが発生します。わかりませんか?

作成したばかりのWebサイトプロジェクトが、IIS Managerの[既定のWebサイト]に表示されていません。

どうすればこのエラーを取り除くことができますか?

112
Aindriu

これをWeb設定ファイルに保存してから、add value = "yourwebformname.aspx"という名前に変更します。

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

else

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
119
user3943211

この問題は、WebサイトでDirectory Browsing機能が有効になっていないために発生し、デフォルトのドキュメントが設定されていません。この問題を解決するには、次のいずれかの方法を使用します。この問題を解決するために、私は MSサポートページ に記載されている方法1とその推奨される方法の手順に従いました。

方法1:IISでディレクトリ参照機能を有効にする(推奨)

  1. IIS Managerを起動します。これを行うために、開始をクリックし、ファイル名を指定して実行をクリックするinetmgr.exeを入力して、OKを次にクリックします。

  2. IISマネージャで、[サーバー名]、[Webサイト]の順に展開し、変更するWebサイトをクリックします。

  3. 「機能」ビューで、「ディレクトリ参照」をダブルクリックします。

  4. [操作]ウィンドウで、[有効にする]をクリックします。

それでも問題が解決しない場合は、ディレクトリの一覧表示の問題とは異なる問題がある可能性があります。以下の手順に従ってください。

方法2:デフォルトの文書を追加する

この問題を解決するには、次の手順に従います。

  • IIS Managerを起動します。これを行うために、開始をクリックし、ファイル名を指定して実行をクリックするinetmgr.exeを入力して、OKを次にクリックします。
  • IISマネージャで、[サーバー名]、[Webサイト]の順に展開し、変更するWebサイトをクリックします。
  • 「機能」ビューで、「デフォルト文書」をダブルクリックします。
  • [操作]ウィンドウで、[有効にする]をクリックします。
  • [ファイル名]ボックスにデフォルトの文書の名前を入力し、[OK]をクリックします。

方法3:IIS Expressでディレクトリ参照機能を有効にする

注この方法は、IIS Expressを使用したときに問題が発生するWeb開発者向けです。

次の手順を実行します:

  • コマンドプロンプトを開き、コンピュータのIIS Expressフォルダに移動します。たとえば、コマンドプロンプトで次のフォルダに移動します。C:\Program Files\IIS Express

  • 次のコマンドを入力して、Enterキーを押します。

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true

32
Lucky

Cmdに行き、これをタイプしてください:

x64 OSの場合:%windir%\ Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

x32 OSの場合:%windir%\ Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

これは正しいバージョンをインストールし、IISはMVCディレクトリの参照を理解します。

26
Sadjad Khazaie

次の設定をweb.configファイルに追加してみてください。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
16
Litisqe Kumar

この問題には複数の理由が考えられます。 IIS 8.5で私のために働いていたものは以下の通りでした

ステップ

  1. 検索で「Windowsの機能の有効化または無効化」と入力します。
  2. サーバーマネージャの[役割と機能の追加]をクリックします。
  3. WizardでWebサーバーまでスクロールし、[Webサーバー] - > [アプリケーション開発]を選択します。スクリーンショットに示すように、リストからCGI以外のすべてを選択します

enter image description here

  1. 最後に次にヒットしてインストールしてください。
  2. IISを再起動します。

あなたのウェブサイトは働き始めるかもしれません。

15
satish suthar

スタートページを設定します。

この問題に遭遇したとき、私は解決策エクスプローラに行き、最初に見たいページ(私の場合は "Home.aspx")を見つけ、それを右クリックして "開始ページとして設定"を選択しました。これはVisual Studio 2012 Professionalのもので、Firefoxで実行しました。

12
joshmcode

このコードスニペットをweb.configファイルに貼り付けたところ、エラーが解決しました。

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
7

空のWebサイトテンプレートは、Web.configファイルを含むが他のファイルを含まないASP.NET Webサイトを作成します。ブラウズ時または実行時に表示するデフォルトページがないことを意味します。

このエラーメッセージは、単にIISでデフォルトのドキュメントを正しく設定および構成しなかったことを意味します。

これが設定されると、エラーメッセージは消えます。

6
Sain Pradeep

IISのサイトで:

  1. [詳細設定]を選択します
  2. それからアプリケーションプールのために「ASP.NET v4.0」を選択してください

image for example

6
WantToDo

問題

エラー:Visual StudioからWebForms ASP.NET Webサイトを実行しているときの403.13。

溶液

ルートへのアクセスが拒否されました: http:// localhost:51365

ログインページまたは存在する任意のページに移動すると、それが機能します。

http:// localhost:51365/Login.aspx

5
Jeremy Thompson

これに対する簡単な解決策が1つあります。実際、私は自分のWebページをスタートページとして設定していなかったので、このエラーが出ました。下記のようにスタートページを設定したので私のウェブページ(html/aspx)をしたとき私はこのエラーを修正しました。  enter image description here

この解決策が他の人に役立つかどうかはわかりません。

3
Rinoy Ashokan

私の場合は、空のWeb Apiプロジェクトを作成した後に同じエラーが発生しました。

App_Start フォルダーの RouteConfig.cs を編集して解決しました。

私はコードを読む行を置き換えました: -

defaults: new { action = "Index", id = UrlParameter.Optional }

次のとおり: -

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

最初に呼び出したいインデックスアクションのControllerを指定しなければならないことに注意してください。

さて、上記のすべての応答が私のケースを解決することはできませんでした(私が望んでいたように)。

  • web.config からディレクトリ参照を有効にすると、インデックスファイルがない場合にphpが実行するのと同じように、プロジェクト内のすべてのファイルとフォルダが一覧表示されるようになります。
  • defaultDocument を設定してもうまくいかなかったので、どういうわけかまだHTTPエラー403.14が発生しました(まだ理由がわかりません)。

私と同じような状況にいる人がいるかもしれないなら、これを試してみてください。

2
rey_coder

私の場合は、私のWebアプリケーションが.NET v4で、アプリケーションプールが.NET v2用に設定されていたため、このエラーが発生しました。

アプリケーションプールをダブルクリックするとポップアップウィンドウが表示され、そこで希望のバージョンの.NET Frameworkを選択できます。

2
Blackbird

コントロールパネル> Windowsの機能の有効化または無効化

インターネットインフォメーションサービス>ワールドワイドウェブサービス>アプリケーション開発機能

2つのオプションを有効にする

.NET Extensibility 3.5
ASP.NET 3.5

 enter image description here

2
Hakam Fostok

解決済み
検索"Windows Feature"開始時に->
クリック"turn features on and off"->
展開"Internet Information Services"および
すべてのサブフォルダーのすべてのプログラムをチェックし、
「OK」をクリック
これにより、すべての問題が修正されます。 enter image description here

2
lilhamad

ソリューションエクスプローラーでプロジェクトを右クリックし、[新しい項目を追加]をクリックして、HTMLページを追加し、すべてのアプリケーションを再実行した後にindex.HTMLという名前を付けます。

1
user1324491

これは、bum applicationhost.configエントリが原因である可能性があります。

実行中の場合はIIS Expressを停止します(Windowsシステムトレイの水色のスクロールアイコンを右クリックし、終了)。

プロジェクトの[プロパティ]> [Web]に移動し、[プロジェクトのURL]が正しいことを確認します。 https URLの場合は、有効な範囲のポート番号が含まれていることを確認してください。正しいURLはhttps://localhost:44300/です。 URLの横にある[Create Virtual Directory]ボタンを押します。これにより、applicationhost.configに新しいエントリが追加されます。

もう一度プロジェクトを開始すると、エラーが発生しなくなります。

1
Protector one

このエラーが発生し、アプリケーションプール管理パイプラインモードを「統合」に変更すると問題が解決します。

出典: IIS 8.5での.NET 4.6 MVCアプリケーションの実行(Windows Server 2012)

1
Evandro

数年後にあなたはおそらくすでに答えを持っていると確信しています。しかし、他の誰かが将来答えを探しているのであれば。

私の問題では、私はweb.configに何もする必要はありませんでした。それが以前に機能していたので、私はどちらも必要があるとは思わなかった。

あなたのページと同じ名前のフォルダがないことを確認してください、私は "blog"という名前のフォルダと "blog.aspx"という名前のページを持っていました。今、それはうまくロードされます。

あなたが検索クエリの最初であるので私はここにコピーを投稿します。

1
Justin Sinnard

これは、さまざまな理由で発生する可能性があります。上記のすべてを試しても同じエラーが発生する場合は、もう1つの解決策があります。

これが起こる別の理由は

  1. 新しいソリューションの実行を開始する前に同じコードベースを実行している場合、このエラーが発生する可能性があります。理由は、IIS Expressが、アプリケーション開始URLに登録された物理パスを持つ古いソリューションの場合と同じポートで実行しようとしているためです。
  2. IISはソリューションを実行するための物理パスを把握できないため、アプリケーションの起動に必要なすべてのdllを見つけることができない場合があります。

ソリューション:

  1. アプリケーションポートをデフォルトに変更してみてください。たとえば、http://localhost/の代わりにhttp://localhost:25836/を使用します。

  2. 前のアプリケーションで既にデフォルトのポートを使用している場合は、他のポートに変更してみてください。例:http://localhost:25364/の代わりにhttp://localhost/

これにより、IIS/IIS Expressは、アプリケーションを起動するために必要なすべてのdllを持つ、実行しようとしている新しいアプリケーションのデフォルトのbinパスを指すことができます。

0
Krishna

私の場合、Microsoft.Owin.Host.SystemWebの抜け道がありませんでした。

0
pootzko