イベントログに何も書き込まれないときにIIS 7.5で500内部サーバーエラーを診断する方法


43

既存のASP.NET MVC3サイトに更新プログラムを展開しました(既に構成されていました)。IISの死のブルースクリーンが表示されます。

HTTPエラー500.0-
内部サーバーエラー内部サーバーエラーが発生したため、ページを表示できません。

しかしながら; アプリケーションイベントログには、エントリの(より)詳細な説明が表示されるはずの場所には何も表示されません。

この問題を診断するにはどうすればよいですか?


ここでもまったく同じ問題があります。私の経験では、イベントログが空の場合、リクエストはワーカープロセスに正しくルーティングされませんでした。最近の展開の1つでは、アプリが断続的に動作し、リクエストの約50%が500エラーでランダムに失敗し、ログには何も表示されませんでした。展開後に発生するAppDomainのアンロードに問題があると思われます。好奇心から、運用環境でウイルス対策を実行していますか?IISのリセットで問題は解決しますか(次の展開まで)?
ShadowChaser

回答:


41

IIS7の失敗した要求トレース機能を見てください。

IIS 7のトレースを使用した失敗した要求のトラブルシューティング失敗した要求トレースでの
トラブルシューティング

<httpErrors>IISがパイプラインの上位からエラーメッセージを飲み込んでいる可能性があるため、私が行うもう1つのことは、設定を調整することです。

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

サイトがクラシックASPで作成されている場合は、ASP構成機能の[ ブラウザーにエラーを送信]設定を必ずオンにしてください

ここに画像の説明を入力してください

最後に、Internet Explorerを使用している場合は、[詳細設定]で[ フレンドリHTTPエラーメッセージを表示する]がオフになっていることを確認します(既に行っているか、別のブラウザを使用していると思われます)。


2
existingResponseはReplaceに設定されました。ヒントをありがとう。
グレッグB

これは非常に良い答えですが、ASP構成ウィンドウの起動方法が含まれていれば改善される可能性があります。
マイケルポッター

13

私の場合:

  • イベントログが空でした。
  • web.config 破損していない-ローカルマシンで同じものを使用して/を使用して検証 inetmgr

最後に...

  • IISログを確認すると、このような要求が示されました

...Chrome/57.0.2987.133+Safari/537.36 500 19 5 312

重要なのは:

sc-status sc-substatus sc-win32-status 500 19 5

いくつかのグーグルでIIS_USRSwwwフォルダへの読み取り権限がないことを私に指摘しました


2
私はここでステータスコードのリストを見つけました: support.microsoft.com/en-us/help/943891/...
sirdankを

4

最も明らかな問題は、Webアプリケーションフォルダーに対する不適切またはゼロのNTFS権限です。そのため、サイトを提供するアカウントに適切な権限があることを確認してください。Webディレクトリに対する適切なNTFS権限がなければ、web.configに何を入力しても問題はありません。

簡単なチェックは、すべての人に完全な権限を与えることです。サイトが機能し始めたら、それが権限の問題であることがわかり、適切な権限をより適切なアカウントに割り当てることを設定できます。


1

IIS6からアップグレードする場合、web.configは6で動作しますが、IIS 7.5では動作しない可能性があります... WebサイトのIISのすべてのアイコンをダブルクリックすると、形式に関するエラーが表示される場合があります(セクション他のセクションの下にある必要があります...)


0

Azure Webアプリでも同じ問題が発生しました。ローカルでデバッグしている間、ajax呼び出しから返されたエラーメッセージ(JSON)は完全にブラウザーに返されました。しかし、Webアプリにデプロイすると、メッセージが飲み込まれ、デフォルトの500エラーメッセージが返されました。したがって、web.config タグでexistingResponse値を明示的に設定する必要がありPassThroughましたhttpErrors

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.