我的用戶報告說,他無法進入網頁後,他登錄到網站,並在頁面僅顯示見「在‘/’應用程序中的服務器錯誤」詳細的IIS服務器
Server Error in '/' Application
有所以我可以在IIS服務器中看到錯誤的詳細信息,因爲我不想更改web.config以顯示用戶顯示屏上的詳細信息。
謝謝!
我的用戶報告說,他無法進入網頁後,他登錄到網站,並在頁面僅顯示見「在‘/’應用程序中的服務器錯誤」詳細的IIS服務器
Server Error in '/' Application
有所以我可以在IIS服務器中看到錯誤的詳細信息,因爲我不想更改web.config以顯示用戶顯示屏上的詳細信息。
謝謝!
看一看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
在我現在的情況下,我無法向Web服務器添加/刪除任何東西。有沒有辦法使用IIS提供的東西來查看日誌/細節? – user1008497
也許你可以用新的ELMAH網址更新答案?這是http://elmah.github.io/ – ThomasArdal
乾杯@ThomasArdal。現在完成。 – RussAwesome
如果你不想配置ELMAH,你可以看看IIS日誌。也許可以使用IIS團隊中的Log Parser之類的東西,以便能夠在日誌文件之上編寫簡單的查詢。
完成後,我強烈建議您到set up ELMAH on your website。這樣可以節省你,你有這樣的問題:)
一個很好的起點,以確定哪些網頁導致錯誤使用以下日誌分析器查詢提取有趣的線從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]值的含義如下:
的可能的複製[未處理ASP.NET錯誤 - ?任何可用的記錄](http://stackoverflow.com/questions/6036234/unhandled- asp-net-errors-any-logging-available) – CodeCaster