釋出asp.net core 應用 在IIS
近期由於工作原因,需要釋出.net core框架下的webapi到IIS上。遭遇了一番蹂躪,特此記下,以備後面使用。
首先工作中有2個服務。一個是identityserver4的服務,負責token的發放,一個是我們的業務webApi。
當客戶需要呼叫我們的webapi時,要先到identityserver4上去申請一個token。然後使用這個token來訪問我們的webapi。
授權伺服器identityserver4,是開源的。在git上可以直接獲得。是基於.net core 開發的。我用的是基於.net core 1.0的。
下面它的部署就登場了。建議使用微軟提供的文件。文件地址
https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
文件最後面有常見問題Common errors 和解決方式 Troubleshooting。
由於伺服器是server2012 ,所用的iis版本為8.5.支援 本身支援 .net 4.5
1.安裝iis webserver
2 安裝 .net core windows server hosting bundle
注意安裝完畢之後,重啟伺服器,或者執行 net stop was /y followed by net start w3svc from a command prompt to pick up a change to the system PATH
否則,會報
-
502.3 Bad Gateway - There was a connection error while trying to route the request
雖然在文件中的troubleshooting裡提到,但是根據那個解決不了問題。還是得靠重啟。 或者那個命令。
3 安裝.net core 執行時庫,我安裝的.net core sdk
在cmd裡面執行 dotnet可以驗證安裝是否正確。
4 將vs裡釋出的包,放入iis裡,很普通的網站釋出一樣。
但是應用程式池 裡 .net 框架 要選擇 無託管程式碼。
第二個 webapi的釋出和一般的mvc的web釋出一樣。
5 如果報 500 內部錯誤或者webapi沒有正確 記錄日誌,請檢視日誌的配置,以及iisuser對資料夾的許可權。
這和其他網站釋出沒有區別。