2011-08-08 22 views
8

Bir yerde, bir yerde kodda bir hata atıyor gibi görünen bir sorunu teşhis etmeye çalışıyorum. Hata günlüklerinden, bir SQL sorgusunun hatalı kodla birleştirilmesinden kaynaklanan bir SQL sözdizimi hatası gibi görünüyor. Sorunum, hatayı yeniden oluşturamıyorum, ancak müşteriler hala bunu alıyor ve bazı sorgular nedeni olabilir. Bu yüzden planım sonucu yakalamak için kendi 500 hata sayfamı oluşturmak.Klasik ASP - 500 hatası alınıyor

Tüm oturum verilerini, tüm POST ve GET verilerini (yapabildiğim) yakalamak için sayfayı almak istiyorum ama aynı zamanda hata hakkında ayrıntılı bilgi almak istiyorum. Site, hataların gösterilmesine izin verdiği sırada sayfada ne görüneceğini oldukça fazla gösterir. Çizgiyi belirten küçük ok ile.

Özel 500 hata sayfasındaki hatayı yakalamanın bir yolu var mı? peşin

Grant

cevap

14

İyi alabilirsiniz, ama bir hata yok ASP büyük bilgi ne zaman:

bakınız.

Ancak, ASP toprağınızda, program çöktüğünde size biraz daha fazla bilgi verebilecek define a custom 500 error code page yapabilirsiniz. İşte hata hakkında oldukça iyi bir hata mesajı oluşturacak bazı örnek kod. IIS7 GetLastError günü

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 

Düzenleme bulunan herhangi bilgilere sahip görünmemektedir.
Sorunu, bir 500.100 oluşturarak ve komut dosyanızda işaret ederek geçici bir çözüm yapabilirsiniz.
YMMV, bu URL'leri kontrol edin daha fazla bilgi için http://forums.iis.net/t/1150502.aspx ve http://www.tacticaltechnique.com/web-development/classic-asp-getlasterror-in-iis7/

+0

Eduardo Molteni düzenleme harika bir çözümdür! –