asp.net mvc 4アプリケーションを開発しました。 2012年と比較して、これはうまく機能します。このWebアプリケーションを公開し、iis 7.5に配置しましたが、iisを介してWebアプリケーションを参照したい場合、次のエラーメッセージが表示されました。
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
このエラーはこのWebアプリケーションによるものと考えられますが、別のasp.net mvc 4アプリケーション(変更なしでインターネットテンプレートを使用)を作成し、iisに配置すると、再びエラーが表示されます。
私たちはインターネットで検索し、この問題が彼らのために起こったというより多くの詩人を見る。例えば: 403-iis7.5 リンクでの基本的なMVC 3デプロイで禁止この問題を解決するためのアイデアを紹介し、この問題が解決されたと仮定します彼らの人々のために、しかし、この解決策は私のために機能しません。私たちが言う別のリンクには次が含まれます:this https://stackoverflow.com/questions/6885509/http-error-403-14-forbidden and this: http://yassershaikh.com/http-error-403-14-forbidden-the-web-server-is-configured-to-not-list-the-contents-of-this -directory / しかし、この解決策は私にとってはうまくいきません
この問題を解決するためのアイデアはありますか?
IISの更新は私の問題を解決します。これは以下のリンクからダウンロードできます: http://support.Microsoft.com/kb/980368
IIS 7.5、Visual Studioなどをインストールした後、まったく新しいマシンで同じ問題が発生しました。最終的にASP.NET登録を更新すると動作しました。
C:\ windows\Microsoft.NET\Framework64\v4.0.30319>。\ aspnet_regiis.exe -ir C:\ windows\Microsoft.NET\Framework64\v4.0.30319> iisreset
HTH
まず、コマンドプロンプトで次のコマンドを実行して、IISのフレームワークを登録する必要があります。
C:\ windows\Microsoft.NET\Framework\v4.0.30319> aspnet_regiis.exe -i C:\ windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis.exe -i
それでもエラーが表示される場合
HTTPエラー403.14-禁止Webサーバーは、このディレクトリのコンテンツを一覧表示しないように構成されています
次に、IISの更新が必要です。これは、URLがピリオドで終わっていない場合に使用されます
更新については、次のリンクをご覧ください http://support.Microsoft.com/kb/980368
特定のIIS 7.0またはIIS 7.5ハンドラーがURLがピリオドで終わらないリクエストを処理できるようにする更新プログラムが利用可能です
Windowsで高度なコマンドプロンプトを開きます(管理者としてコマンドプロンプトを実行します)。
.NET Frameworkおよび.Net Framework64の場所でコマンドaspnet_regiis -i
を実行します。以下のように、ここでi
パラメーターはASP.NETバージョン4をインストールすることを意味します。最初のコマンドは32ビット用で、2番目は64ビットバージョンのインストール用です。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -i
このコマンドは、ASP.NETアプリケーションをインターネットインフォメーションサービス(IIS)サーバーに登録するために使用されます。
おそらく... Publish Wizard(私がしたように)を使用し、[公開中にプリコンパイルする]チェックボックス(私がしたように)を選択し、同じ症状を見る場合...
ええ、私は頭を打ちましたが、このボックスをオフにすると、一見無関係な設定になり、説明されているすべての症状がなくなります。
うまくいけば、これが何人かの人々を修正します。
50人の担当者がいる場合、@ Sethの回答についてコメントします。これは単なる検索と置換の問題ではありません。 リファクタリング->バグの名前変更 Visual Studio 2012には、誤って "id"の名前を変更しましたリテラル文字列内 RouteConfig.csのurlパラメーターの値。もちろん、それは「修正されない」として解決されるので、注意してください。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
に変更されました
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{replaced_text}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
アプリケーションが正しく構成されていないようです。すべてのアプリケーションファイルとともにweb.configが展開されていること、およびアプリケーションプールが正しく構成されていることを確認します。
IIS=を実行しているマシンに直接アクセスすると、より詳細なエラーメッセージが表示される可能性があります。
私の場合、問題は物理パスの設定にありました。
C:\ inetpub\wwwroot\MySiteを指していました
しかし、インポートされたサイトは実際にはC:\ inetpub\wwwroot\MySite\Default Web Site\MySiteにありました
MySite-> Siteの編集-> Basic Settingsでiisのパスを変更し、レースに出発しました。
新しいプロジェクトのweb.configから作業用のConnectionStringをコピーして古いプロジェクトのConnectionStringを置き換えた後、同じエラー(403.14)が発生し、localdbでテストを開始してエラーを受け取りました。注:新しいweb.configから古いweb.configに、接続文字列のconnectionString部分のみをコピーし、古いプロジェクトの名前またはプロバイダー名を変更しませんでした。数時間の調査の後、最終的に古いプロジェクト(VS 2012の[デザイン]タブ)の添付されたsqldatasourceの1つに入り、sqldatasourceを再構成し([データソースの構成]をクリック)、最初のドロップダウンボックスで関連する名前を選択しました最近コピーされたConnectionStringの1つを使用します。これですべてが完了し、ConnectionStringを再構成した後に機能し始めました。 ConnectionStringを新しいプロジェクトから古いプロジェクトにコピーしたときに、sqldatasource割り当てプロセスで指定されたデフォルトのテーブルが失われた可能性がありますか?
サイトのアプリケーションプールを変更する必要があります。
ASP.NET v4.0
私の場合、デフォルトWebサイトは別のアプリケーションにマップされていました。 Default Web Site内でアプリにアクセスしようとしたときに、403.14エラーが発生しました。
解決策は、既定のWebサイトを既定のC:\ inetpub\wwwrootに再マップすることでした。
私は同じエラーを抱えていましたが、上記の解決策はどれもうまくいきませんでした。開発マシンに.Net 4.6がインストールされていましたが、プロジェクトは.net 4.5を対象としていましたこれが起こった理由を理解することはできませんでしたが、それでもこのことがうまくいきました。