Visual Studio 2012で新しい空のWebサイトを作成し、実行時にクリックした(つまりブラウザで表示した)と、このエラーが表示されます。
HTTPエラー403.14 - 禁止Webサーバーは、このディレクトリの内容を表示しないように設定されています。
IISに移動して[ディレクトリの参照]をクリックし、[ディレクトリの参照]が有効になっていることを確認しましたが、それでもこのエラーが発生します。わかりませんか?
作成したばかりのWebサイトプロジェクトが、IIS Managerの[既定のWebサイト]に表示されていません。
どうすればこのエラーを取り除くことができますか?
これを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>
この問題は、WebサイトでDirectory Browsing
機能が有効になっていないために発生し、デフォルトのドキュメントが設定されていません。この問題を解決するには、次のいずれかの方法を使用します。この問題を解決するために、私は MSサポートページ に記載されている方法1とその推奨される方法の手順に従いました。
方法1:IISでディレクトリ参照機能を有効にする(推奨)
IIS Managerを起動します。これを行うために、開始をクリックし、ファイル名を指定して実行をクリックするinetmgr.exeを入力して、OKを次にクリックします。
IISマネージャで、[サーバー名]、[Webサイト]の順に展開し、変更するWebサイトをクリックします。
「機能」ビューで、「ディレクトリ参照」をダブルクリックします。
[操作]ウィンドウで、[有効にする]をクリックします。
それでも問題が解決しない場合は、ディレクトリの一覧表示の問題とは異なる問題がある可能性があります。以下の手順に従ってください。
方法2:デフォルトの文書を追加する
この問題を解決するには、次の手順に従います。
方法3:IIS Expressでディレクトリ参照機能を有効にする
注この方法は、IIS Expressを使用したときに問題が発生するWeb開発者向けです。
次の手順を実行します:
コマンドプロンプトを開き、コンピュータのIIS Expressフォルダに移動します。たとえば、コマンドプロンプトで次のフォルダに移動します。C:\Program Files\IIS Express
次のコマンドを入力して、Enterキーを押します。
appcmd set config /section:system.webServer/directoryBrowse /enabled:true
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ディレクトリの参照を理解します。
次の設定をweb.config
ファイルに追加してみてください。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
スタートページを設定します。
この問題に遭遇したとき、私は解決策エクスプローラに行き、最初に見たいページ(私の場合は "Home.aspx")を見つけ、それを右クリックして "開始ページとして設定"を選択しました。これはVisual Studio 2012 Professionalのもので、Firefoxで実行しました。
このコードスニペットをweb.configファイルに貼り付けたところ、エラーが解決しました。
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
空のWebサイトテンプレートは、Web.configファイルを含むが他のファイルを含まないASP.NET Webサイトを作成します。ブラウズ時または実行時に表示するデフォルトページがないことを意味します。
このエラーメッセージは、単にIISでデフォルトのドキュメントを正しく設定および構成しなかったことを意味します。
これが設定されると、エラーメッセージは消えます。
IISのサイトで:
エラー:Visual StudioからWebForms ASP.NET Webサイトを実行しているときの403.13。
ルートへのアクセスが拒否されました: http:// localhost:51365
ログインページまたは存在する任意のページに移動すると、それが機能します。
私の場合は、空のWeb Apiプロジェクトを作成した後に同じエラーが発生しました。
App_Start フォルダーの RouteConfig.cs を編集して解決しました。
私はコードを読む行を置き換えました: -
defaults: new { action = "Index", id = UrlParameter.Optional }
次のとおり: -
defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }
最初に呼び出したいインデックスアクションのControllerを指定しなければならないことに注意してください。
さて、上記のすべての応答が私のケースを解決することはできませんでした(私が望んでいたように)。
私と同じような状況にいる人がいるかもしれないなら、これを試してみてください。
私の場合は、私のWebアプリケーションが.NET v4で、アプリケーションプールが.NET v2用に設定されていたため、このエラーが発生しました。
アプリケーションプールをダブルクリックするとポップアップウィンドウが表示され、そこで希望のバージョンの.NET Frameworkを選択できます。
ソリューションエクスプローラーでプロジェクトを右クリックし、[新しい項目を追加]をクリックして、HTMLページを追加し、すべてのアプリケーションを再実行した後にindex.HTMLという名前を付けます。
これは、bum applicationhost.configエントリが原因である可能性があります。
実行中の場合はIIS Expressを停止します(Windowsシステムトレイの水色のスクロールアイコンを右クリックし、終了)。
プロジェクトの[プロパティ]> [Web]に移動し、[プロジェクトのURL]が正しいことを確認します。 https URLの場合は、有効な範囲のポート番号が含まれていることを確認してください。正しいURLはhttps://localhost:44300/
です。 URLの横にある[Create Virtual Directory]ボタンを押します。これにより、applicationhost.configに新しいエントリが追加されます。
もう一度プロジェクトを開始すると、エラーが発生しなくなります。
このエラーが発生し、アプリケーションプール管理パイプラインモードを「統合」に変更すると問題が解決します。
数年後にあなたはおそらくすでに答えを持っていると確信しています。しかし、他の誰かが将来答えを探しているのであれば。
私の問題では、私はweb.configに何もする必要はありませんでした。それが以前に機能していたので、私はどちらも必要があるとは思わなかった。
あなたのページと同じ名前のフォルダがないことを確認してください、私は "blog"という名前のフォルダと "blog.aspx"という名前のページを持っていました。今、それはうまくロードされます。
あなたが検索クエリの最初であるので私はここにコピーを投稿します。
これは、さまざまな理由で発生する可能性があります。上記のすべてを試しても同じエラーが発生する場合は、もう1つの解決策があります。
これが起こる別の理由は
ソリューション:
アプリケーションポートをデフォルトに変更してみてください。たとえば、http://localhost/
の代わりにhttp://localhost:25836/
を使用します。
前のアプリケーションで既にデフォルトのポートを使用している場合は、他のポートに変更してみてください。例:http://localhost:25364/
の代わりにhttp://localhost/
これにより、IIS/IIS Expressは、アプリケーションを起動するために必要なすべてのdllを持つ、実行しようとしている新しいアプリケーションのデフォルトのbinパスを指すことができます。
私の場合、Microsoft.Owin.Host.SystemWeb
の抜け道がありませんでした。