透過 Web Deploy 3.6 將 .NET Core 3.1 專案發布至 Windows Server 2019 IIS

OS:Windows Server 2019

VS:2022


安裝 .NET Core

選擇 .NET Core 3.1 版


畫面有推薦安裝 Hosting Bundle 版本,其中包含 .NET Runtime

The ASP.NET Core Runtime enables you to run existing web/server applications. On Windows, we recommend installing the Hosting Bundle, which includes the .NET Runtime and IIS support.

IIS runtime support (ASP.NET Core Module v2)



下載安裝檔案




執行 dotnet-hosting-3.1.23-win.exe





開啟 IIS 站台中的模組



看到 AspNetCoreModuleV2 表示安裝成功



安裝 Web Deploy


開啟 IIS 到左邊點選首頁後,點左邊的取得新的網路平台元件

或自己安裝 Web Platform Installer 也可




搜尋 deploy 並安裝 Web Deploy 3.6

安裝完後,Web Deploy 3.6 跟 Web Deploy 3.6 without bundled SQL support (lastest) 會顯示已安裝



我途中遇到奇怪的訊息什麼 SQL Server 2012 找不到之類的,安裝一直失敗

最後是到這邊手動下載 Web Deploy 3.6


先把 Web Deploy 3.6 都移除




再到 Web Platform Installer 重新安裝 Web Deploy 3.6 才終於成功

是否安裝成功,看到 IIS 站台中的網站,右鍵選單有沒有出現部屬的選項



接著設定 IIS 的管理服務

開啟 IIS 首頁,點兩下服務管理



要先停用,才能更改設定




勾選啟用遠端連線,選擇識別認證的類型,套用並重啟



在網站按右鍵選單,部屬 > 啟用 Web Deploy 發行


按設定



會產生一個發佈檔,將裡面的資料填寫到 Visual Studio 的發佈設定





設定主機防火牆

我是使用 Azure 虛擬主機,記得到網路設定 Web Deploy 使用的 8172 port


若沒有開啟會後面執行專案發佈時可能會遇到此錯誤:

Web 部署工作失敗。(無法完成對遠端代理程式 URL 'https://xx.xx.xx.xx:8172/msdeploy.axd?site=Default Web Site' 的要求。)
此錯誤表示您無法連線至伺服器。請確定服務 URL 正確無誤,在此電腦及伺服器電腦上正確設定防火牆及網路設定,而且已經在伺服器上啟動適當的服務。



使用 Web Deploy 發布專案


方案總管,專案右鍵選單,按發佈



新增發行設定檔



選擇網頁伺服器,我們要用 Web Deploy 發佈到 IIS



選擇 Web Deploy



輸入伺服器的 IP 、 IIS 的網站名稱、網址與登入的帳號密碼

按下驗證連線,確定是否可正常連線


如果遇到以下錯誤訊息

Web 部署工作失敗。(無法連線到遠端電腦 ("xx.xx.xx.xx")。請確定已在遠端電腦上安裝 Web Deploy,並已啟動必要的處理程序 ("Web Management Service")。  如需詳細資訊,請造訪: https://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE。)
此錯誤表示您無法連線至伺服器。請確定服務 URL 正確無誤,在此電腦及伺服器電腦上正確設定防火牆及網路設定,而且已經在伺服器上啟動適當的服務。




無法完成對遠端代理程式 URL 'https://xx.xx.xx.xx:8172/msdeploy.axd?site=Default Web Site' 的要求。
基礎連接已關閉: 傳送時發生未預期的錯誤。



表示 Web Deploy 沒有安裝成功,或者是要到服務檢查 Web Management Service 是否有正常執行



如果 Web Management Service 無法開啟,那要查看事件記錄



IISWMSVC_STARTUP_UNABLE_TO_READ_CERTIFICATE

無法讀取具有指紋 'af1ed4b4c52dc6022c41aeabeb89ec02e89e6b38' 的憑證。請確定 SSL 憑證是否存在,而且在管理服務畫面中的設定是否正確。

處理序:WMSvc
使用者=NT AUTHORITY\LOCAL SERVICE

請到 IIS 設定管理服務





按下發佈




瀏覽網址,發佈成功






留言

這個網誌中的熱門文章

CPE 一顆星選集題目說明與解答 - Java 筆記與心得分享

Visual Studio 自動排版格式化程式碼

1. Vito's family (CPE10406, UVA10041) - CPE一顆星解答與說明