2016-08-22 114 views
0

我的用戶報告說,他無法進入網頁後,他登錄到網站,並在頁面僅顯示見「在‘/’應用程序中的服務器錯誤」詳細的IIS服務器

Server Error in '/' Application

有所以我可以在IIS服務器中看到錯誤的詳細信息,因爲我不想更改web.config以顯示用戶顯示屏上的詳細信息。

謝謝!

+0

的可能的複製[未處理ASP.NET錯誤 - ?任何可用的記錄](http://stackoverflow.com/questions/6036234/unhandled- asp-net-errors-any-logging-available) – CodeCaster

回答

1

看一看ELMAH http://elmah.github.io/

您可以將DLL添加到您的項目,並配置web配置的連接字符串。這會將所有錯誤記錄到數據庫表中,並顯示當時發生的情況。它甚至會告訴你在頁面上的文本框中填充了什麼內容,這對於跟蹤用戶當時輸入的內容非常有用。

如果失敗,請嘗試連接到global.asax文件中的Application_Error事件。代碼我用的是下面和送我只要有一個服務器錯誤郵件:

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 
    ' Fires when an error occurs 

    Dim errorMessage As New StringBuilder 
    Dim serverException As Exception = Server.GetLastError 

    errorMessage.Append("<h1 style=""color:red;font-size:18pt;font-family:Arial;font-weight:normal;"">Server Error In NewmanWeb</h1>") 
    errorMessage.Append("<hr width=""100%"" size=""1"" color=""silver"">") 
    errorMessage.Append("<h2 style=""color:maroon;font-size:14pt;font-style:italic;font-family:Arial;font-weight:normal;"">" & serverException.Message & "</h2>") 

    errorMessage.Append("<b>Exception Type:</b> " & serverException.GetType().ToString() & "<br />") 

    If serverException.InnerException IsNot Nothing Then 
     errorMessage.Append("<b>Inner Exception Type:</b> " & serverException.InnerException.GetType().ToString() & "<br />") 
     errorMessage.Append("<b>Inner Source: </b>" & serverException.InnerException.Source & "<br />") 
     errorMessage.Append("<div style=""background:#ffffcc;font-family:Consolas,Monospace;padding:0.5em;font-size:11pt;""") 
     errorMessage.Append("<pre>" & serverException.InnerException.Message & "</pre><br />") 
     If serverException.InnerException.StackTrace IsNot Nothing Then 
      errorMessage.AppendLine("<pre>" & serverException.InnerException.StackTrace & "</pre><br />") 
     End If 
     errorMessage.Append("</div><br />") 
    End If 

    If serverException.StackTrace IsNot Nothing Then 
     errorMessage.Append("<b>Stack Trace: </b><br />") 
     errorMessage.Append("<div style=""background:#ffffcc;font-family:Consolas;padding:0.5em;font-size:11pt;""") 
     errorMessage.Append("<pre>" & serverException.StackTrace & "</pre>") 
     errorMessage.Append("</div>") 
    End If 

    'Send email code here 

    Server.Transfer("~/Error.aspx") 
End Sub 
+0

在我現在的情況下,我無法向Web服務器添加/刪除任何東西。有沒有辦法使用IIS提供的東西來查看日誌/細節? – user1008497

+1

也許你可以用新的ELMAH網址更新答案?這是http://elmah.github.io/ – ThomasArdal

+0

乾杯@ThomasArdal。現在完成。 – RussAwesome

0

如果你不想配置ELMAH,你可以看看IIS日誌。也許可以使用IIS團隊中的Log Parser之類的東西,以便能夠在日誌文件之上編寫簡單的查詢。

完成後,我強烈建議您到set up ELMAH on your website。這樣可以節省你,你有這樣的問題:)

0

一個很好的起點,以確定哪些網頁導致錯誤使用以下日誌分析器查詢提取有趣的線從IIS日誌下一次:

::List of 500 errors 
::------------------ 
logparser -i:IISW3C -rtp:-1 -o:NAT -headers:OFF -iw:ON "SELECT * FROM C:\inetpub\your-website.com\ex*.log TO c:\500Errors.txt WHERE (Extract_Extension(To_Lowercase(cs-uri-stem)) IN ('aspx')) AND cs-status >= 500)" 

此外,爲了挖掘有關原因的更多信息,你可以查詢Windows事件日誌尋找由「是」進程(Windows激活服務)引發的錯誤的列表:

logparser.exe -i:EVT -rtp:-1 -o:NAT -headers:OFF -iw:ON "SELECT TimeGenerated,EventID,EventType,EventTypeName,EventCategory,EventCategoryName,SourceName,Strings,Data,Message,ComputerName,SID,EXTRACT_TOKEN(TO_LOWERCASE(RESOLVE_SID(Sid)), 1, '\\') AS UsernameMessage FROM \\YourMachineName\System TO c:\WindowsEventLogWASerrors.txt WHERE TimeGenerated > '2016-07-12 00:00:00' AND EventType IN (1;2;4) AND SourceName = 'WAS' ORDER BY TimeGenerated DESC" 

只需更換下面的查詢[YourMachineName],並自定義你感興趣(該[TimeGenerated]場)的時間表。

注:[的EventType]值的含義如下:

    1. 錯誤
  • 警告
  • 信息
相關問題