2012-02-13 23 views
6

Classic ASPのすべての500エラーをグローバルレベルでキャプチャすることは可能ですか?たぶん、IISの何か。私は現在II6を使用しています。私は、エラーメッセージをキャプチャし、データベースに格納するのが好きです。私はASPXのページでその可能性を知っているが、あなたは古典的なASPでやっているかを正確には知らない。 クラシックASP:キャプチャエラー

あなたは

+0

IIS7には、処理されていない古典的なASPエラーが報告されています(6.0に存在するかどうかは不明です)。 http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis/ –

答えて

13

はい、データベースにエラーの詳細をログに記録し、以下のようにIISで500ハンドラページであるためにこれを設定しますASPページを作成していただきありがとうございます。

ハンドラスクリプトでエラーの詳細を取得するには、Server.GetLastErrorオブジェクトを使用します。

回復力のために、500ハンドラ内のDBではなくテキストファイルにログを記録することをお勧めします。従来のASPでの取り扱い

Set Custom 500 Handler in IIS

+1

偉大な答え... – Dan

+0

これはまさに私が探していたものです。ありがとうジョン。私は今試してみる。 – MindGame

+0

私はresponse.write Server.GetLastError()私は何も得られません。何か案は? – MindGame

4

エラーが完了痛みです。 on error resume nextを使用してエラーが発生すると思われる場所でエラーをキャッチし、次のコード行でエラーコードを確認します。

また、サーバーログで500個のエラーをスキャンできます。またはIIS設定で「500エラー」ページを設定します。

Jonの答えを補完
On Error Resume Next 
... do something... 
If Err.Number <> 0 Then 
... handle error 
end if 
5

、ログファイルにエラーを書き込むために、このスクリプトを使用します。

<% 
'Set this page up in IIS to receive HTTP 500 errors 
''Type' needs to be 'URL' and the URL is e.g.: '/500Error.asp' if this file is named '500Error.asp' and is in the site root directory. 
'This script assumes there is a "/Log" folder, and that IIS has write access to it. 
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 

Dim objFSO, err 
Set objFSO=CreateObject("Scripting.FileSystemObject") 

Set err = Server.GetLastError() 

outFile=Server.MapPath("/Log/ErrorLog.txt") 
Set objFile = objFSO.OpenTextFile(outFile, ForAppending, True, TristateTrue) 

objFile.WriteLine Now & " - ERROR - ASPCode:" & err.ASPCode & " ASPDescription: " & err.ASPDescription & " Category: " & err.Category & " Description: " & err.Description & " File: " & err.File & " Line: " & err.Line & " Source: " & err.Source & vbCrLf 
objFile.Close 

Set objFile = Nothing 
Set err = Nothing 

%> 
0

@ジョンイーストウッドの答えに追加するには - 「カスタムエラーを使用すると、IIS 7.5を使用している場合は、その代わりに、これは、Windows Server 2008および他のより新しいのWindowsのSKUに適用され

enter image description here

:下の画像あたり.NETエラーページ」「あなたが探します」。