萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Windows Server 2008 教學

Windows Server 2008 IIS 7.5 500 內部錯誤詳細資訊顯示設定:瀏覽器與伺服器雙端配置

ASP/ASP.NET 應用程式在 IIS 7/7.5 上拋出 HTTP 500 錯誤時,預設僅顯示通用「內部伺服器錯誤」頁面,隱藏詳細例外堆疊、行號與模組資訊,導致除錯困難。本文提供瀏覽器端與 IIS 伺服器端雙重配置,讓詳細錯誤資訊安全顯示。

常見 500 錯誤成因速查

  • ASP/VBScript 語法錯誤 (遺漏 %、物件未實例化)。
  • Access/SQL Server 連接字串錯誤、權限不足、資料庫鎖定/損毀。
  • 檔案引用路徑錯誤 (父路徑 ../ 未啟用、虛擬目錄對應錯誤)。
  • 使用伺服器未安裝的 COM 元件 (如 FSO、XMLDOM、第三方上傳元件)。
  • .NET 版本不符、web.config 設定錯誤 (customErrors、compilation debug、httpRuntime)。

方法一:瀏覽器端關閉「顯示易懂的 HTTP 錯誤訊息」

  1. IE →「工具」 (齒輪圖示) →「網際網路選項」→「進階」索引標籤。
  2. 捲動至「瀏覽」區段 → 取消勾選「顯示易懂的 HTTP 錯誤訊息」} → 確定。
  3. 重新整理錯誤頁面 (Ctrl+F5),即可看到詳細錯誤描述、行號、原始碼片段。

IE 進階設定-關閉易懂錯誤訊息

方法二:IIS 管理員設定「詳細錯誤」回應 (伺服器端生效,所有用戶端受益)

  1. 開啟「Internet Information Services (IIS) 管理員」 → 左側連線樹選取 伺服器節點 (根節點) → 雙擊中間「錯誤頁面」圖示。
    關鍵:必須在伺服器層級 (非網站層級) 設定,否則繼承關係可能不生效。
  2. 右側動作窗格點選「編輯功能設定」。
  3. 選擇「詳細錯誤」單選鈕 → 確定。

IIS 錯誤頁面功能設定
選擇詳細錯誤回應

方法三:web.config 精細控制 (應用程式層級,建議生產環境)

<configuration>
  <system.webServer>
    <httpErrors errorMode="Detailed" /> <!-- 等同 IIS 管理員設定 -->
    <!-- 或僅對本機用戶顯示詳細錯誤,遠端顯示自訂頁面 -->
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File">
      <remove statusCode="500" />
      <error statusCode="500" path="/errors/500.html" responseMode="File" />
    </httpErrors>
  </system.webServer>
  <system.web>
    <customErrors mode="Off" /> <!-- ASP.NET 詳細錯誤 (僅 .NET 執行階段錯誤) -->
    <compilation debug="true" targetFramework="4.0" /> <!-- 開發環境啟用除錯 -->
  </system.web>
</configuration>

安全性權衡與最佳實務

環境建議 errorMode說明
開發/測試Detailed開發人員即時看到完整堆疊,加速除錯
預演/StagingDetailedLocalOnly內部測試者見詳細,外部使用者見友善頁面
生產Custom / DetailedLocalOnly絕不對外部顯示堆疊/路徑/資料庫結構;配合自訂錯誤頁面記錄事件 ID 供運維追蹤

驗證步驟

  1. 在測試頁面故意製造錯誤 (如 Response.Write(1/0) 或連接不存在資料庫)。
  2. 本機瀏覽器存取 → 應顯示詳細錯誤 (黃底紅字 ASP 錯誤頁或 ASP.NET 黃色死機畫面)。
  3. 遠端瀏覽器存取 → 依 errorMode 顯示詳細或自訂頁面。
  4. 檢查 IIS 日誌 (%SystemDrive%\inetpub\logs\LogFiles\W3SVC1\) 確認 500 子狀態碼 (如 500.19=設定錯誤, 500.21=模組錯誤)。

雙端配置 (瀏覽器關閉易懂錯誤 + IIS 設定詳細錯誤) 可確保開發測試階段「所見即所得」,生產環境則透過 DetailedLocalOnly 與自訂錯誤頁面兼顧安全性與可維運性。

copyright © 萬盛學電腦網 all rights reserved