從 IIS 取得發佈設定並匯入 Visual Studio
您可以使用 Publish 工具來匯入發佈設定,然後部署您的應用程式。 在本文中,我們會使用 IIS 的發佈設定。
這些步驟適用於 ASP.NET 和 ASP.NET Core Web 應用程式。
注意
發行設定檔(*.publishsettings)與發行設定檔案(*.pubxml)不同。 發行配置檔是在 IIS 中建立,然後可以匯入 Visual Studio。 Visual Studio 會建立發行設定檔。
先決條件
Visual Studio 隨 ASP.NET 和 Web 開發工作負載一起安裝。 如果您已安裝 Visual Studio:
- 在 Visual Studio 中,選取 [說明]>[檢查更新],以安裝最新的更新。
- 選取 [工具]>[取得工具和功能]來新增工作負載。
在您的伺服器上,您必須執行 Windows Server 2012 或更新版本,而且您必須正確安裝 IIS 網站伺服器角色(此動作是為了產生發佈設定檔(
.publishsettings
)。 ASP.NET 4.5 或 ASP.NET Core 也必須安裝在伺服器上。 本教學課程中的步驟已在 Windows Server 2022 中測試。若要設定 ASP.NET Core,請參閱 使用 IIS 在 Windows 上主控 ASP.NET Core。 針對 ASP.NET Core,請確定您將應用程式集區設定為使用 No Managed Code,如本文所述。
若要設定 ASP.NET 4.5,請參閱 IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5。
備註
Windows 上的 IIS 不支援產生發行設定。 不過,您仍然可以使用 Visual Studio 中的 [發佈] 工具來發佈至 IIS。
在 Windows Server 上安裝及設定 Web Deploy
Web Deploy 提供額外的組態功能,可讓您從UI建立發佈配置檔。
註記
Web Platform Installer 於 7/1/22 達到生命周期結束。 如需詳細資訊,請參閱 Web Platform Installer - 終止支援和終止產品/應用程式摘要。 您可以直接安裝 Web Deploy 4.0 來建立發佈配置檔。
如果您尚未 IIS 管理文本和工具安裝,請立即安裝。
移至 [選取 [網頁伺服器角色]>[IIS]>[管理工具]],然後選取 [IIS 管理腳本和工具 角色],按兩下 [[下一步]],然後安裝角色。
需要腳本和工具,才能產生發佈設定檔。
請確定您也安裝 Management Service 和 IIS 管理主控台 (可能已安裝它們)。
在 Windows Server 上,下載 Web Deploy 4.0。
執行 Web Deploy 安裝程式,並確定您選取 完成 安裝,而不是一般安裝。
完成安裝時,您會取得產生發行配置檔所需的元件。 (如果您改為選擇 自定義,您可以看到元件清單,如下圖所示。
的螢幕快照
(選擇性)開啟 控制台 > 系統與安全性 > 管理工具 > 服務,確認 Web Deploy 已正確執行,然後確定:
Web 部署代理程式服務 正在執行(舊版的服務名稱不同)。
Web Management Service 正在執行。
如果其中一個代理程式服務未執行,請重新啟動 Web 部署代理程式服務。
如果 Web 部署代理程式服務完全不存在,請移至 [控制面板] > [程式] > [卸載程式],尋找 Microsoft Web Deploy <版本>。 選擇 [變更] 安裝程序,並確保您選擇的 Web Deploy 元件 將會安裝至本機硬碟。 完成變更安裝步驟。
在 Windows Server 上的 IIS 中建立發行配置檔
關閉並重新開啟 IIS 管理主控台,以在 UI 中顯示更新的組態選項。
在 IIS 中,以滑鼠右鍵點選 預設網站,選擇 部署>設定 Web Deploy 發佈。
如果您沒有看到 [部署] 功能表,請參閱上一節以確認 Web Deploy 正在執行。
在 [設定 Web Deploy Publishing] 對話框中,檢查設定。
按下 設定。
在 [結果] 面板中,輸出會顯示授與指定使用者的存取權限,並在對話框中所示位置生成了一個具有 .publishsettings 擴展名的檔案。
<?xml version="1.0" encoding="utf-8"?> <publishData> <publishProfile publishUrl="https://myhostname:8172/msdeploy.axd" msdeploySite="Default Web Site" destinationAppUrl="http://myhostname:80/" profileName="Default Settings" publishMethod="MSDeploy" userName="myhostname\myusername" /> </publishData>
視您的 Windows Server 和 IIS 組態而定,您會在 XML 檔案中看到不同的值。 您看到的數據值的詳細資訊如下:
msdeploy.axd
publishUrl
屬性中所參考的檔案是 Web Deploy 動態產生的 HTTP 處理程式檔案。 (為了測試目的,http://myhostname:8172
通常也能正常運作。)publishUrl
埠會設定為埠 8172,這是 Web Deploy 的預設值。destinationAppUrl
埠會設定為埠 80,這是 IIS 的預設值。如果在後續步驟中,您無法使用主機名從 Visual Studio 連線到遠端主機,請測試伺服器的 IP 位址以取代主機名。
註記
如果您要發佈至在 Azure VM 上執行的 IIS,您必須在網路安全組中開啟 Web Deploy 和 IIS 的輸入埠。 如需詳細資訊,請參閱 開啟虛擬機端口。
將此檔案複製到您執行 Visual Studio 的電腦。
在 Visual Studio 中匯入發佈設定並部署
在 Visual Studio 中開啟 ASP.NET 項目的電腦上,以滑鼠右鍵按兩下 [方案總管] 中的項目,然後選擇 [[發佈]。
如果您先前已設定任何發佈設定檔,[發佈] 窗格隨即出現。 點選 「新增」 或 「建立新的設定檔」。
選取匯入配置檔的選項。
在 發佈 對話框中,按一下 匯入設定檔。
流覽至您在上一節中建立之發行配置檔的位置。
在 [匯入發行設定檔] 對話框中,瀏覽到您在上一節中建立的設定檔,然後按一下 [開啟]。
請按一下 [完成] 以儲存發佈配置檔,然後按一下 [發佈]。
Visual Studio 會開始部署程式,[輸出] 視窗會顯示進度和結果。
如果您收到任何部署錯誤,請點擊 [更多動作]>[編輯] 來編輯設定。 修改設定,然後按兩下 [驗證],以測試新的設定。 如果找不到主機名稱,請在 [Server] 和 [目的地 URL] 欄位中嘗試使用 IP 位址,而不是主機名稱。
成功部署應用程式之後,它應該會自動啟動。
常見問題
首先,檢查 Visual Studio 中的 [輸出] 視窗以取得狀態資訊,並檢查您的錯誤訊息。 另外:
- 如果您無法使用主機名連線到主機,請改為嘗試IP位址。
- 請確定遠端伺服器上已開啟必要的埠。
- 針對 ASP.NET Core,在 IIS 中,您必須確定 DefaultAppPool 的應用程式集區字段已設定為 No Managed Code。
- 確認應用程式中所使用的 ASP.NET 版本與您安裝在伺服器上的版本相同。 針對您的應用程式,您可以在 [屬性] 頁面中檢視和設定版本。 若要將應用程式設定為不同的版本,則必須安裝該版本。
- 如果應用程式嘗試開啟,但您會看到憑證警告,請選擇信任網站。 如果您已經關閉警告,您可以在項目中編輯 *.pubxml 檔案,並新增下列元素:
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
。 此設定僅適用於測試! - 如果應用程式未從 Visual Studio 啟動,請在 IIS 中啟動應用程式,以測試它是否已正確部署。