當架設在 IIS 下的 ASP.NET Core 網站出現不知道怎麼查錯誤的時候,可以試試這個方法。

今天在測試專案佈署的時候,出現這完全看不出所以然的錯誤訊息,只知道應用程式打不開了,這麼籠統誰知道發生甚麼事呀,而且如果連使用 Windows 的事件檢視器(Event Viewer)也找不到錯誤訊息了話,那也真的很難查。
一般來說,會出現這錯誤訊息,很有可能是遺失了 DLL 檔,或是 Program.cs/Startup.cs 在執行中發生了問題,這時候可以透過下面的設定來查看看。
- 修改
web.config將stdoutLogEnabled設定成true - 手動建立
logs資料夾- 預設 Log 資料夾設定為
stdoutLogFile=".\logs\stdout" - 但在手動建立
logs資料夾前,AspNetCoreModule 不會自己建立資料結,也不會產生任何 Log 檔 - 設定值中的
stdout代表 Log 檔名的前綴(這滿容易誤解的)
- 預設 Log 資料夾設定為
- 重新執行網頁請求,並觀察
logs資料夾中是否產生stdout_*.log的檔案
修改後的 web.config 大致如下圖:

執行網頁請求後,會產生 Log 檔,如下圖:

為避免影響執行效能,記得在查完錯誤後將
stdoutLogEnabled設定成false
後記
最後查看 Log 檔後發現,只是忘記將 Swagger 所需要的加入 Document.xml 加進去,所以無法正確啟動。
參考資料: