IIS 7.5、2008rc2、従来のASP、500エラーメッセージ:
内部サーバーエラーが発生したため、ページを表示できません。
より詳細なエラーを表示するためにIISを構成する方法を知る必要があります。
ASP設定内のすべてのデバッグオプションをtrueに設定してみました。
しかし、それはうまくいきませんでした。誰かが私を手伝ってくれる?
私は同じ問題に遭遇し、 Alex Kと同じように を修正しました。
「ブラウザにエラーを送信」が機能していない場合は、これも設定します。
エラーページ - > 500 - >機能設定の編集 - > "詳細エラー"
また、返信されたエラーページの内容が非常に短く、IEを使用している場合、IEはサーバーから返信された有用な内容を無視し、代わりに独自の一般的なエラーページを表示します。あなたは、IEのオプションでこれをオフにするか、別のブラウザを使用することができます。
リモートサーバーにいる場合は、web.configファイルを次のように設定できます。
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
IIS adminのサイトのホーム画面で[ASP]をダブルクリックし、[デバッグのプロパティ]を展開して[エラーをブラウザに送信]を有効にし、[適用]をクリックします。
ホーム画面の[エラーページ]で[500]、[機能設定の編集]、[詳細エラー]の順に選択します。
IIS 8.0(Windows Server 2012)にも同じ手順が適用されます。
web.configの下に
<system.webServer>
行を置き換える(または追加する)
<httpErrors errorMode="Detailed"></httpErrors>
と
<httpErrors existingResponse="PassThrough" errorMode="Detailed"></httpErrors>
これは、デフォルトでIIS7が、アプリケーションによって生成された4xxや5xxなどのHTTPステータスコードをさらにパイプラインの途中で傍受するためです。
次に、「ASP」セクションの下の「ブラウザへのエラー送信」を有効にし、「エラーページ/機能設定の編集」で「詳細エラー」を選択します。
また、IIS_IUSRS組み込みグループに、Webサイトフォルダの書き込み権限を付与します。
TLDR:まずパイプラインのどこからエラーが発生しているのかを判断し(エラーに似たもののスクリーンショットを探してスクロールします)、新しいものを取得するために変更を加えます。
あなたがここにあるファイルを見ているなら...
%SystemDrive%\ inetpub\custerr \\ 500.htm
...これは一般に次のようになります。
...そして、あなたは** IIS**で現在設定されているエラーページを見ていることを知っています、そしてあなたはcustomErrors設定、aspエラーを変更する必要はありません。詳細設定、または "show friendly http errors"ブラウザ設定。
万が一誰かがそれを変更した場合に備えて、私のスクリーンショットを信頼するのではなく、上記の参照されたパスを見たいと思うかもしれません。
この場合、< httpErrors >またはIIS Managerの設定が表示されています エラーページ - >機能設定の編集。このデフォルトは、サーバーノードレベル(サイトレベルではなく)のerrorMode = DetailedLocalOnlyです。これは、この構成済みエラーページが表示されることを意味します。リモートの間は、サーバーにローカルにログオンして完全なエラーを見ることができるはずです。
現在のエラーを修正するには、その時点で必要なものがすべて揃っているはずです。
それは2つの可能性を残します。
あなたのサイトの httpErrors を "Detailed"に変更すると、あなたはそれをリモートで見ることができます。それでもうまくいかない場合は、エラーがすでに設定エラーである可能性があります。上記の#3を参照してください。ですから、あなたは#4で行き詰まっているかもしれず、あなたはあなたのサーバーチームからの誰かを必要とすることになるでしょう。
...そしてあなたはこのような何かを見ることを期待しています...
...その後、IISマネージャの[サイト] - > IIS - > ASP - で、[ブラウザにエラーを送信]をtrueに変更する必要があります。 >デバッグプロパティ
またはこれ...
...あなたはあなたのブラウザのわかりやすいエラーを無効にするか、あなたのブラウザがあなたに見せるために選んだものに対して実際の応答を見るためにfiddlerのwebviewを使う必要があります。
これを見れば….
...それからカスタムエラーは機能していますが、カスタムエラーページはありません(もちろん、現時点では.netについて話していて、古典的なaspについては話していませんでした)。 web.configのcustomErrorsタグをRemoteOnlyに変更してサーバーで表示するか、Offを変更してリモートで表示する必要があります。
あなたがあなたのサイトのようなスタイルの何かを見ているなら、カスタムエラーはおそらくOnまたはRemoteOnlyであり、それはカスタムページを表示しています(例えばMVCのViews-> Shared-> Error.cshtml)。とは言っても、誰かがIIS内のページをhttpErrorsに変更した可能性は低いですが、最初のセクションを参照してください。
"existingResponse" httpErrors属性の値を "PassThrough"に設定してみてください。地雷が「置換」に設定されていたため、YSODが表示されませんでした。
<httpErrors errorMode="Detailed" existingResponse="PassThrough">
誰も言及していないことの1つは、非常に迅速で一時的な修正方法です。このWebサーバーのローカルホストでエラーを確認できます。
メインのWebサイトフォルダ(c:\inetpub\wwwroot
)を別のフォルダに変更した場合は、新しいフォルダのIIS_IUSRSグループに読み取り権限を付与する必要があることも確認できます。
EVERYTHINGを試してみただけでエラーの詳細を表示できないFotの人々は、私のように、設定のさまざまなレベルをチェックすることをお勧めします。 Webサイトレベルとアプリケーションレベル(Webサイト内)で両方の設定ファイルをチェックします。また、結局のところ、IISの最上位ノードで[詳細エラー]を無効にしました(スタートページのすぐ下にあり、Webサーバーのコンピューター名と同じ名前です)。エラーページを確認してください。
それを見つけた。
管理者としてcmdを実行し、system32\inetsrvフォルダに移動して以下を実行します。
appcmd.exe set config -section:system.webServer/httpErrors -allowAbsolutePathsWhenDelegated:true
今、私は詳細なASPエラーを見ることができます。
サーバーでブラウザを実行してローカルIPでプロジェクトのURLをテストすると、一般的なエラーページ(500エラーページなど)なしでそのプロジェクトのすべてのエラーが表示されます。