Plesk (ASP クラシックを実行) によって管理される IIS 6.0 で 500 Internal Server Error をデバッグするにはどうすればよいですか?
-
12-09-2019 - |
質問
この問題に関して公開されているほぼすべてのブログ投稿、記事、ヘルプ文書を読みましたが、役に立ちませんでした。最も一般的な提案は次のとおりです。
Internet Explorer -> [ツール] メニュー -> インターネット オプション -> 詳細 -> わかりやすいエラー メッセージを表示 (これがチェックされていないことを確認してください)
IIS -> ホームディレクトリタブ -> 構成...-> [デバッグ] タブ -> 詳細な ASP エラー メッセージをクライアントに送信 (これが選択されていることを確認してください)
これらはどちらも機能せず、IIS の Plesks 管理に関係があるような気がします。これらの内部サーバーエラーが何であるかを確認する方法はありますか?たとえそれがログ ファイルをサーバー内で閲覧することになるとしても?
解決
以下は、唯一のPleskに適用されます。
Pleskコントロールパネルでドメインに進み、「物理ホスティング設定」の下の「カスタムエラードキュメント」をオフにしてください。これは、直接ブラウザにエラーメッセージが送信されます。
また、ログファイルのディレクトリyourdomain.com\statistics\logs\W3SVCXXXX
にエラーメッセージを見つけることができます。
他のヒント
class_terminateイベントは、IISの設定を触れることなくグローバルエラーハンドラを作成するために使用することができます。 ASPでエラーが発生したとき、それはのServer.Execute構成された500のハンドラだし、その後、残りのすべてのオブジェクトをクリーンアップするためにorginalスクリプトに戻ります。
このはあなたに(例えばデバッグ情報をプリントアウト)グローバルデバッガオブジェクトを作成し、エラーを処理するためにclass_terminateイベントを使用する機会を提供しています。
例:
class cDebugger
private sub class_terminate
if err then
response.clear
dim asp_error
set asp_error = server.getLastError()
response.write asp_error.description
...
...
end if
end sub
end class
set [_debugger] = new cDebugger
Agent_9191でオンに拍車をかけアイデアます:
ページプットの上部でます:
On Error Resume Next
とページプットの下部にある
If Err.Number <> 0 Then Response.Write(Err.Description)
ページのコードを変更せずに、IISから直接デバッグの他のアイデア?
(ただしIIS 7.0を使用して)ASPクラシックの開発者のためのもう一つの伝説のページはこちらです。
<のhref = "http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx" のrel = "nofollowをnoreferrer" > http://blogs.iis.net/bills/archive/2007/05/21/tips-for-classic-asp-developers-on-iis7.aspx の
はカスタム500エラーページ機会に能力を持っている「場合」、あなたはあなたにすべての詳細を与えるであろうServer.GetLastErrorへの呼び出しを使用してエラーをキャッチすることができます(だけでなく、それらのほとんど)デバッグを開始できるようにするべきですそのライブでます。
http://www.w3schools.com/ASP/asp_ref_error.aspする
あなたはローカルで問題を再現することができませんか?