in , , , ,

Plesk Obsidian 18 開啟 ASP.NET 與 web.config 詳細錯誤訊息完整教學

教你在 Windows 虛擬主機快速查看 ASP.NET 與 HTTP Error 錯誤原因


在 Windows 虛擬主機環境中,常見的網站程式技術包含 ASP.NET 與 ASP.NET Core。
當網站發生錯誤時,畫面上往往僅顯示簡單的錯誤訊息,
實際錯誤原因並不會直接呈現。

本文將說明如何在 Plesk Obsidian 18 控制台 中,
自行開啟 ASP.NET 的錯誤顯示設定,
以及透過 web.config 來查看更完整的錯誤記錄,
協助使用者或程式人員快速排查問題。

Windows 虛擬主機與 ASP.NET 錯誤說明

Windows 虛擬主機主要用於執行 ASP.NET 或 ASP.NET Core 網站程式。
當網站發生錯誤時,預設多半只會顯示簡單的 HTTP Error 頁面,
並不會直接顯示實際錯誤原因。

在進行錯誤排查前,建議先確認目前網站是使用 ASP.NET(.NET Framework)
或 ASP.NET Core,不同技術在錯誤顯示與記錄方式上會略有差異。

ASP.NET 與 ASP.NET Core 錯誤顯示差異說明

在實務上,ASP.NET(.NET Framework)與 ASP.NET Core 在錯誤顯示機制上有明顯差異,
若未先區分清楚,可能會導致設定正確卻仍無法看到錯誤內容。

  • ASP.NET(.NET Framework):主要透過 Custom Errors 與 IIS 錯誤頁控制顯示內容。
  • ASP.NET Core:錯誤多半記錄於 stdout log 或系統事件記錄,畫面通常僅顯示 HTTP Error。

因此,若網站為 ASP.NET Core 專案,即使已於 Plesk 中調整 ASP.NET 的 Custom Errors 設定,
實際錯誤仍需搭配 web.config 與錯誤記錄檔來判斷。

Windows 虛擬主機 Plesk 控制台開啟 ASP.NET 自訂錯誤

若您的 Windows 虛擬主機是使用 Plesk Obsidian 18 控制台,
且網站程式為 ASP.NET(非 ASP.NET Core),
可透過控制台內建的 ASP.NET 設定來調整錯誤顯示方式。


ASP.NET設定

在 ASP.NET 設定頁面中,可找到 Custom Errors mode(自訂錯誤模式),
此選項用於控制錯誤顯示內容。

  • On:顯示自訂錯誤頁
  • Off:顯示完整錯誤訊息
  • RemoteOnly:本機顯示詳細錯誤,遠端顯示自訂錯誤


ASP.NET設定

HTTP Error 500.30 – ASP.NET Core app failed to start

當網站使用 ASP.NET Core,
且瀏覽網站時出現 HTTP Error 500.30 – ASP.NET Core app failed to start,
代表程式在啟動階段即發生錯誤。

需要注意的是,HTTP Error 500.30 不一定代表程式碼本身有問題,
在 Windows 虛擬主機環境中,以下情況也非常常見:

  • .NET Hosting Bundle 與專案版本不相容
  • 專案編譯版本與主機支援的 Runtime 不一致
  • web.config 中殘留舊版設定導致啟動失敗


Windows虛擬主機HTTP Error

可透過編輯 httpdocs 目錄下的 web.config,
將 stdoutLogEnabled 設為 true,
以產生錯誤記錄檔進行排查。

其他 HTTP Error 錯誤說明

若網站出現 HTTP Error 502.5、500.31 或其他 HTTP Error 訊息,
大多也可透過上述方式進行排查。

補充說明:若網站使用的是 Classic ASP(傳統 ASP)
其錯誤顯示方式與 ASP.NET 不同,
Classic ASP 並不使用 web.config 控制錯誤顯示,
多半需透過 IIS 或主機商設定進行排查。

重要安全與使用提醒

詳細錯誤訊息僅建議於除錯期間暫時開啟,
若長時間於正式營運網站中啟用,
可能會洩漏系統路徑、資料庫連線資訊或程式結構,
亦可能影響網站效能與資訊安全。

完成錯誤排查後,請務必將相關設定恢復為關閉狀態。

常見問題

Q1.Plesk Obsidian 18 可以查看 ASP.NET 的詳細錯誤原因嗎?

可以,透過 Plesk 控制台中的 ASP.NET 設定,或於 web.config 中開啟相關錯誤記錄設定,即可查看實際錯誤原因。


Q2.HTTP Error 500.30 一定代表程式碼錯誤嗎?

不一定,HTTP Error 500.30 常見原因也包含 .NET Runtime 不相容、主機環境設定錯誤或 web.config 參數異常,並非一定是程式碼問題。


Q3.為什麼開啟 stdoutLogEnabled 後卻沒有產生錯誤紀錄檔?

常見原因包含 logs 資料夾不存在或無寫入權限、程式尚未成功啟動至 ASP.NET Core 執行階段,或主機商限制錯誤記錄產生。


Q4.ASP.NET 與 ASP.NET Core 的錯誤顯示方式有什麼不同?

ASP.NET(.NET Framework)主要透過 Custom Errors 與 IIS 控制錯誤顯示,而 ASP.NET Core 則多半透過 stdout log 或系統事件記錄來查看錯誤內容。


Q5.除錯完成後需要關閉詳細錯誤顯示嗎?

需要,正式營運網站若長期開啟詳細錯誤,可能洩漏系統路徑、程式結構或敏感資訊,建議除錯完成後立即關閉相關設定。

文章來源:https://wpoki.com

 

Written by 婷Z

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

GIPHY App Key not set. Please check settings