[.NET Core] 將專案發行至IIS
- Install the .NET Core 執行時所需要的Library,Runtime https://www.microsoft.com/net/download
,裝完IIS需重啟。 - Web Deploy v3.6
- Install HttpPlatformHandler 這是給 Web Deploy使用,請參考
IIS 設定
IIS 新增Site並將Pooling的CLR Version改成 No Managed Code
建立完後,為了先方便測試,我直接將位置指向程式原始檔的目錄,執行後出現錯誤如下:
這是因為web.config上的啟動參數路徑不對,在開發工具執行時會將參數傳入,如下
在IIS若要測試,可以手動調整如下
註:若是使用發行的方式,此設定會自動改成發行後的相對路徑,不用再手動調整
發行程式
同樣的Site,使用非.NET Core的可以發行,但使用.NET Core的卻會出現錯誤
觀察一下兩邊發行檔的差異後,.NET Core多了一個使用Power Shell的設定
檢視PublishProfiles目錄,果然有一個對應的命令檔IIS-publish.ps1,.NET Core會使用此檔案的命令來作發行,不像之前的版本是直接取pubxml的參數後,來發行。
- IIS-publish.ps1 :在建立發行Profile時,會產生第一次,讓開發人員可以作調整。
- publish-module.psm1:每次發行都會重新產生的發行模組,不可手動修改此檔,IIS-publish.ps1參考此模組。
在IIS-publish.ps1 加入設定後,就可以正常發行到IIS上了。