.Net Core IIS 503錯誤

這兩天試著把測試的Blazor App部署到IIS後,一執行就出現503錯誤,並且Pooling整個停止。

測試環境:
  • .Net Core 3.0
  • Window 10 Build 17763
  • 部署方式

503錯誤
一開始Google時查到的解決方式,大部份的文章都是裝完ASP.NET Core Runtime & Hosting Bundle,即可解決。但我安裝完, IIS及電腦都重開機過,但依然出現503錯誤。
查詢"事件檢視器"後,發現一些缺少.dll的錯誤。如下列表:

The Module DLL C:\Windows\System32\inetsrv\isapi.dll failed to load.  The data is the error.
The Module DLL C:\Windows\System32\inetsrv\iiswsock.dll failed to load.  The data is the error.
The Module DLL C:\Windows\System32\inetsrv\iprestr.dll failed to load.  The data is the error.
The Module DLL C:\Windows\system32\inetsrv\aspnetcore.dll failed to load.  The data is the error.

上述訊息,不是一次性的全部出現,是在我根據訊息,查詢到的可能缺少的元件,安裝後,再出另一個的訊息....昏。由於是本機測試,不管三七二十一,也不太確定是哪個安裝修正哪個錯誤了。
相關安裝:
    • IP Address and Domain Restrictions
    • Web Socket
    • Web Deploy 3.6


在解決了一系列的錯誤後,最後還有另一個奇怪的錯誤要修正。為何寫在這,沒有列在上方? 因為它的解決方式較特別。
The Module DLL C:\Windows\system32\inetsrv\aspnetcore.dll failed to load.  The data is the error.

在找不到解決方式情況下,索性將C:\Program Files\IIS Express下的aspnetcore.dll,複製到C:\Windows\system32\inetsrv\ ,結果..竟然可以成功執行了....。

500 錯誤無法連線 LocalDb
此測試程式,使用的資料庫是LocalDb,執行時會出現500錯誤,事件檢視器的訊息:


這個錯誤,我自己猜想應該是權限問題,所以以為只要在檔案的權限加上Pooling的執行身份即可,但加了之後,還是一樣(連EveryOne都試了也沒用),所以我直接將Pooling身份改成Local System後,就可以執行了。

參考文章

這個網誌中的熱門文章

IIS 設定只允許特定IP進入

[Sql Server] 資料庫備份筆記