Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 7/8/10 站點報錯「An error occurred on the server」一鍵開啟詳細錯誤訊息

編輯:關於伺服器

故障現象

An error occurred on the server when processing the URL.
Please contact the system administrator.
Click here to find out more about this error.

瀏覽器僅顯示通用錯誤頁,無任何堆疊追蹤、行號、異常類型,開發/運維無從下手。

根因

IIS 7+ 預設隱藏詳細錯誤(httpErrors errorMode="DetailedLocalOnly"),遠端訪問只見友好頁。需顯式開啟「將錯誤傳送至瀏覽器」。

圖形化操作步驟(IIS 管理員)

  1. 打開 IIS 管理員 (inetmgr)。
  2. 左側連線樹選中目標 網站 或 應用程式。
  3. 中間功能視圖雙擊 ASP 圖示(若無,需在「角色服務」安裝 ASP)。
  4. 展開 偵錯屬性 → 找到 將錯誤傳送至瀏覽器 (scriptErrorSentToBrowser)。
    ASP偵錯屬性
  5. 將值從 False 改為 True。
  6. 點擊右側動作欄 套用。
  7. 重新整理瀏覽器,即可看到完整錯誤堆疊(行號、檔案、異常訊息)。

Web.config 等效配置(無圖形介面/自動化部署)

<configuration>
  <system.webServer>
    <asp scriptErrorSentToBrowser="true" />
  </system.webServer>
</configuration>

或針對經典 ASP:

<configuration>
  <system.web>
    <customErrors mode="Off" />  <!-- ASP.NET -->
  </system.web>
</configuration>

安全警示與生產環境策略

生產最佳實踐:

  1. 保持 scriptErrorSentToBrowser="false"。
  2. 配置 <httpErrors errorMode="Custom" existingResponse="Auto"> 指向友好錯誤頁(/error/500.html、/error/404.html)。
  3. 關鍵錯誤寫入 Windows 事件日誌 / ELK / Sentry,告警通知開發團隊。
  4. 排查時臨時開啟、定位完成立即關閉,納入變更管理流程。

擴展:ASP.NET Core / PHP / Node.js 同理

  • ASP.NET Core:app.UseDeveloperExceptionPage() 僅在 env.IsDevelopment() 啟用。
  • PHP:display_errors = Off、log_errors = On、error_log = /var/log/php_errors.log。
  • Node.js (IISNode):NODE_ENV=production、自訂錯誤中間件。

總結

IIS 站點報錯無詳情,90% 是 ASP → 偵錯屬性 → 將錯誤傳送至瀏覽器 = False。一鍵改 True 即見真章。生產環境嚴禁常開,排查完畢立即還原,配合自訂錯誤頁與集中式日誌,兼顧體驗與安全。

Copyright © Windows教程網 All Rights Reserved
環境建議設定原因
開發/測試/Stagingtrue / Off即時除錯、降低 MTTR
生產false / RemoteOnly + 自訂錯誤頁防止洩露堆疊、路徑、資料庫結構、版本資訊給攻擊者