Internal Server Error 500 w/ IIS Log

2020-02-14 06:54发布

问题:

I am getting some errors on my classic asp website. When the website runs for the first time it sometimes does an Internal Server Error. Then a refresh would fix it. I decided to check my IIS logs to see what the problem is but i can't interpret it. Here is the log line

  2013-12-09 15:29:00 xx.xx.xx.xx GET / |37|80070005|Access_is_denied.__ 80 - xx.xxx.xx.xx Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/31.0.1650.63+Safari/537.36 500 0 0 702

回答1:

How about setup custom pages for handle 500 and 500 100 errors?

  1. Create some folder, let's say D:\InetPub\Web01\Err\ Add IUSR_Web01 user with write permission

  2. In IIS for Web01 web site (sample for IIS 6.0)

  3. Put following code in file 500.asp and 500100.asp

    Option Explicit
    Response.Buffer = True
    Response.Expires = -1
    Response.ExpiresAbsolute = #Jan 31,2000 12:30:00#
    
    Response.Clear
    
    Dim FS, TF, N, ASPErr
    N = Now
    
    Set ASPErr = Server.GetLastError() 
    
    Set FS = CreateObject ("Scripting.FileSystemObject")
    Set TF = FS.CreateTextFile ("D:\InetPub\1click.lv\Err\500 " & "Error" & Right ("0" & Year (N), 4) & Right ("0" & Month (N), 2) & Right ("0" & Day (N), 2) & "_" & Right ("0" & Hour (N), 2) & Right ("0" & Minute (N), 2) & Right ("0" & Second (N), 2) & ".txt", True, False)
    TF.Write MyErrorInfo (ASPErr, False, False, "1click.lv", "")
    TF.Close
    Set FS = Nothing
    
    Response.Write MyErrorInfo (ASPErr, True, True, "1click.lv", "zam@1click.lv")
    Err.Clear
    

The function:

Function MyErrorInfo (ASPErr, AsHTML, ShowContactInfo, WebTitle, AdminEmail)
    Dim Result
    Result = ""
    If AsHTML = True Then
        Result = Result & "<html><head><title>Error occur</title></head><body><font face=Verdana size=2>"
        If (ShowContactInfo = True) Then
            Result = Result & "<p align=center>"
            Result = Result & "<font size=4>"
            Result = Result & "<font color=""#008000"">" & WebTitle & "</font><br>"
            Result = Result & "<font color=""#800000"">500 Error occur</font><br>"
            Result = Result & "Please contact us by email at <a href=""mailto:" & AdminEmail & """>" & AdminEmail & "</a> and inform about this error<br><br>"
            Result = Result & "Thank you for your support!"
            Result = Result & "</font>"
            Result = Result & "</p>"
        End If
        Result = Result & "<hr>"
        Result = Result & "Error number: <b>" & ASPErr.Number & "</b><br>"
        Result = Result & "Error source: <b>" & ASPErr.Source  & "</b><br>"
        Result = Result & "Error description: <b>" & ASPErr.Description & "</b><br>"
        Result = Result & "Error line: <b>" & ASPErr.Line & "</b><br>"
        Result = Result & "Client IP: <b>" & Request.ServerVariables ("REMOTE_ADDR") & "</b><br>"
        Result = Result & "Client Browser: <b>" & Request.ServerVariables ("HTTP_USER_AGENT") & "</b><br>"
        Result = Result & "Client Referer: <b>" & Request.ServerVariables ("HTTP_REFERER") & "</b><br>"
        Result = Result & "Path: <b>" & Request.ServerVariables ("PATH_INFO") & "</b><br>"
        Result = Result & "Request method: <b>" & Request.ServerVariables ("REQUEST_METHOD") & "</b><br>"
        Result = Result & "Request FORM: <b>" & Request.Form & "</b><br>"
        Result = Result & "Request QUERY: <b>" & Request.QueryString & "</b><br>"
        Result = Result & "<hr>"
        Result = Result & "</font></body></html>"
    Else
        Result = Result & WebTitle & vbCrLf
        Result = Result & "Error number: " & ASPErr.Number & vbCrLf
        Result = Result & "Error source: " & ASPErr.Source  & vbCrLf
        Result = Result & "Error description: " & ASPErr.Description & vbCrLf
        Result = Result & "Error line: " & ASPErr.Line & vbCrLf
        Result = Result & "Client IP: " & Request.ServerVariables ("REMOTE_ADDR") & vbCrLf
        Result = Result & "Client Browser: " & Request.ServerVariables ("HTTP_USER_AGENT") & vbCrLf
        Result = Result & "Client Referer: " & Request.ServerVariables ("HTTP_REFERER") & vbCrLf
        Result = Result & "Path: " & Request.ServerVariables ("PATH_INFO") & vbCrLf
        Result = Result & "Request method: " & Request.ServerVariables ("REQUEST_METHOD") & vbCrLf
        Result = Result & "Request FORM: " & Request.Form & vbCrLf
        Result = Result & "Request QUERY: " & Request.QueryString & vbCrLf
    End If
    MyErrorInfo = Result
End Function