2011-08-08 23 views
8

私はコードのどこかでエラーを投げているようだサイトの問題を診断しようとしています。エラーログからは、SQLクエリと不正なコードの不正な連結によってSQL構文エラーが発生したようです。私の問題は、私はエラーを再現することができないが、顧客はまだそれを取得しており、それは多くのクエリによって引き起こされる可能性があるということです。だから私の計画は、自分の500エラーページを作成して結果をキャッチすることです。古典的なASP - 500エラーをキャッチ

私はすべてのセッションデータ、すべてのPOSTとGETデータ(私ができる)をキャッチするようにページを取得したいが、エラーの詳細情報もキャッチしたい。サイトでエラーを表示できるようになったときに、ページに表示される内容はかなりです。小さい矢印で線を指定します。

カスタム500エラーページからエラーをキャッチする方法はありますか?事前に

おかげ一般

グラント

答えて

14

あなたは良いを得ることができますが、エラーを持っていないASPからの偉大な情報とき:

を参照してください。

しかし、ASPの土地でdefine a custom 500 error code pageを使用すると、プログラムがクラッシュしたときに少し詳しく知ることができます。ここでは、あなたのエラーについてかなりまともなエラーメッセージを構築するいくつかのサンプルコードです。

Set objASPError = Server.GetLastError 

    Dim strProblem 
    strProblem = "ASPCode: " & Server.HTMLEncode(objASPError.ASPCode) & vbCrLf 
    strProblem = strProblem & "Number: 0x" & Hex(objASPError.Number) & vbCrLf 
    strProblem = strProblem & "Source: [" & Server.HTMLEncode(objASPError.Source) & "]" & vbCrLf 
    strProblem = strProblem & "Category: " & Server.HTMLEncode(objASPError.Category) & vbCrLf 
    strProblem = strProblem & "File: " & Server.HTMLEncode(objASPError.File) & vbCrLf 
    strProblem = strProblem & "Line: " & CStr(objASPError.Line) & vbCrLf 
    strProblem = strProblem & "Column: " & CStr(objASPError.Column) & vbCrLf 
    strProblem = strProblem & "Description: " & Server.HTMLEncode(objASPError.Description) & vbCrLf 
    strProblem = strProblem & "ASP Description: " & Server.HTMLEncode(objASPError.ASPDescription) & vbCrLf 
    strProblem = strProblem & "Server Variables: " & vbCrLf & Server.HTMLEncode(Request.ServerVariables("ALL_HTTP")) & vbCrLf 
    strProblem = strProblem & "QueryString: " & Server.HTMLEncode(Request.QueryString) & vbCrLf 
    strProblem = strProblem & "URL: " & Server.HTMLEncode(Request.ServerVariables("URL")) & vbCrLf 
    strProblem = strProblem & "Content Type: " & Server.HTMLEncode(Request.ServerVariables("CONTENT_TYPE")) & vbCrLf 
    strProblem = strProblem & "Content Length: " & Server.HTMLEncode(Request.ServerVariables("CONTENT_LENGTH")) & vbCrLf 
    strProblem = strProblem & "Local Addr: " & Server.HTMLEncode(Request.ServerVariables("LOCAL_ADDR")) & vbCrLf 
    strProblem = strProblem & "Remote Addr: " & Server.HTMLEncode(Request.ServerVariables("LOCAL_ADDR")) & vbCrLf 
    strProblem = strProblem & "Time: " & Now & vbCrLf 

編集 IIS7のGetLastErrorで利用可能なすべての情報を持っていないようです。
問題を回避するには、500.100を作成し、これをスクリプトで指定します。
YMMV詳細については、これらのURLを確認してくださいhttp://forums.iis.net/t/1150502.aspxhttp://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/

+0

Eduardo Molteniの編集は素晴らしい回避策です! –

関連する問題