簡體   English   中英

在 IIS 自定義錯誤頁面上捕獲錯誤詳細信息

[英]Catch Error details on IIS Custom Error Page

使用 web.config 我將 IIS 配置為將 500 錯誤重定向到我的應用程序中的自定義頁面。

<httpErrors errorMode="Custom">
        <remove statusCode="500" />
        <error statusCode="500" path="/Pages/ErrorPages/CustomError.asp" responseMode="ExecuteURL" />
    </httpErrors>

這工作得很好,當出現 500 錯誤時,它會重定向到提到的經典 asp 頁面。

現在我想從我的自定義錯誤頁面中捕獲錯誤詳細信息,例如文件路徑和行號,當我們將“將錯誤發送到瀏覽器”設置為 TRUE 並將錯誤頁面功能設置為“詳細錯誤”時,它會顯示在標准錯誤頁面上

我可以通過配置 IIS 和使用 javascript/jquery 來解決這個問題的方法是什么

將錯誤發送到瀏覽器 錯誤頁面功能 樣本標准詳細錯誤

由於詳細錯誤覆蓋了我的自定義錯誤頁面的內容,我想出了一種不同的方法來解決我的問題。

我在 IIS 上啟用了失敗的請求跟蹤規則,它在inetpub\logs\FailedReqLogFiles中創建了一個日志文件夾

在此處輸入圖像描述

在該文件夾中,它為每個錯誤創建一個單獨的錯誤日志 (XML)。 該 XML 具有如下格式。

<failedRequest url="" siteId="" appPoolId="" processId="" verb="GET" remoteUserName="" userName="" tokenUserName="NT AUTHORITY\IUSR" authenticationType="anonymous" activityId="" failureReason="STATUS_CODE" statusCode="500" triggerStatusCode="500" timeTaken="" xmlns:freb="">
<Event>
<System></System><EventData></EventData><RenderingInfo></RenderingInfo><ExtendedTracingInfo></ExtendedTracingInfo>
</Event>
<Event>
<System></System><EventData></EventData><RenderingInfo></RenderingInfo><ExtendedTracingInfo></ExtendedTracingInfo>
</Event>
...
...
</failedRequest

我循環瀏覽了事件標簽並選擇了事件>系統>級別等於2的那個。這就是當您預覽XML時它顯示為錯誤的事件。 然后您可以閱讀Event>EventData以獲取 Error LineNumber 和 Description。

在我的自定義錯誤頁面中,我使用 XHR 調用請求信息並將其存儲在隱藏字段中,直到需要為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM