設定 Web Deploy 發行的網頁伺服器 (Web Deploy 處理常式)

本主題描述如何使用 IIS Web 部署處理程式,設定 Internet Information Services (IIS) Web 伺服器以支援 Web 發佈和部署。

當您使用 Web Deploy 2.0 或更新版本時,有三種主要方法可用來將應用程式或網站放入網頁伺服器。 您可以:

  • 使用 Web Deploy 遠端代理程式服務。 這種方法需要較少的網頁伺服器設定,但您必須提供本機伺服器管理員的認證,才能將任何專案部署到伺服器。
  • 使用 Web 部署處理程式。 這種方法較為複雜,需要更多初始工作才能設定網頁伺服器。 不過,當您使用此方法時,您可以設定 IIS 以允許非系統管理員使用者執行部署。 Web 部署處理程式僅適用於 IIS 7 版或更新版本。
  • 使用 離線部署。 此方法需要網頁伺服器的最低組態,但伺服器管理員必須手動將 Web 套件複製到伺服器,並透過 IIS 管理員匯入。

如需這些方法的主要功能、優點和缺點的詳細資訊,請參閱 選擇正確的 Web 部署方法

是,如果您想要允許非系統管理員使用者將內容部署至特定 IIS 網站。 在這類案例中,通常建議使用此方法:

  • 預備或生產環境,其中觸發遠端部署的人員或服務帳戶不太可能能夠存取伺服器管理員的認證。
  • 裝載的環境,您想要讓遠端用戶能夠更新其網站,而不需要完全控制網頁伺服器 (或存取其他人的網站) 。

在開發或測試案例中,或在較小的組織中,使用伺服器管理員認證部署內容通常較不具競爭性。 在這些案例中,將您的 Web 伺服器設定為支援使用 Web Deploy 遠端代理程式服務 進行部署,提供更直接的方法。

工作概觀

若要使用 Web 部署處理程式方法,將 Web 伺服器設定為接受及部署遠端電腦的 Web 套件,您必須:

  • 建立或選擇網域用戶帳戶 (您將用來執行部署的「非系統管理員使用者」) 。
  • 安裝 IIS 7.5,包括 Web 管理服務和基本身份驗證模組。
  • 安裝 Web Deploy 2.1 或更新版本。
  • 設定 Web 管理服務以允許遠端連線,並啟動服務。
  • 建立 IIS 網站來裝載已部署的內容。
  • 在 IIS 管理員中授與您的網站非系統管理員用戶許可權。
  • 確定 Web 管理服務委派規則允許服務使用非系統管理員用戶帳戶新增和變更網站內容。
  • 設定任何防火牆以允許埠 8172 上的連入連線。

若要特別裝載 ContactManager 範例解決方案,您也必須:

  • 安裝 .NET Framework 4.0。
  • 安裝 ASP.NET MVC 3。

本主題將示範如何執行這些程式。 本主題中的工作和逐步解說假設您從執行 Windows Server 2016 的全新伺服器組建開始。 繼續之前,請確定:

  • Windows Server 2016
  • 伺服器已加入網域。
  • 伺服器具有靜態IP位址。

注意

如需將計算機加入網域的詳細資訊,請參閱 將計算機加入網域和登入。 如需設定靜態 IP 位址的詳細資訊,請參閱 設定靜態 IP 位址

安裝產品和元件

本節將引導您在 Web 伺服器上安裝必要的產品和元件。 開始之前,最好先執行 Windows Update,以確保您的伺服器已完全處於最新狀態。

在這裡情況下,您需要安裝下列專案:

  • IIS 7 建議的設定。 這可讓您在 網頁伺服器上啟用 Web Server (IIS) 角色,並安裝一組您需要的 IIS 模組和元件,以便裝載 ASP.NET 應用程式。
  • IIS:管理服務。 這會在 IIS 中安裝 Web Management Service (WMSvc) 。 此服務會啟用 IIS 網站的遠端管理,並將 Web Deploy 處理程式端點公開給用戶端。
  • IIS:基本身份驗證。 這會安裝 IIS 基本身份驗證模組。 這可讓 Web Management Service (WMSvc) 驗證您提供的認證。
  • Web 部署工具 2.1 或更新版本。 這會在伺服器上安裝 Web Deploy (及其基礎可執行檔 MSDeploy.exe) 。 在此程式中,它會安裝 Web 部署處理程式,並將它與 Web 管理服務整合。
  • .NET Framework 4.0。 這是執行建置在此版本 .NET Framework 上的應用程式的必要專案。
  • ASP.NET MVC 3。 這會安裝執行MVC 3應用程式所需的元件。

注意

本逐步解說說明如何使用 Web Platform Installer 來安裝和設定各種元件。 雖然您不需要使用 Web Platform Installer,但它會自動偵測相依性並確保一律取得最新的產品版本,來簡化安裝程式。 如需詳細資訊,請參閱 Microsoft Web Platform Installer

安裝必要的產品和元件

  1. 下載並安裝 Web Platform Installer

  2. 安裝完成時,Web Platform Installer 會自動啟動。

    注意

    您現在可以從 [ 開始 ] 功能表隨時啟動 Web Platform Installer。 若要這樣做,請在 [開始] 功能表上,單擊 [所有程式],然後按兩下 [Microsoft Web Platform Installer]。

  3. 在 [Web Platform Installer] 視窗的頂端,按一下 [產品]

  4. 在視窗左側的瀏覽窗格中,按兩下 [ 架構]。

  5. Microsoft .NET Framework 4 列中,如果尚未安裝 .NET Framework,請按兩下 [新增]。

    注意

    您可能已經安裝 .NET Framework 4.0 到 Windows Update。 如果已安裝產品或元件,則 Web 平臺安裝程式會藉由將 [ 新增 ] 按鈕取代為 [已安裝] 文字,來指出這一點。

    如果已安裝產品或元件,則 Web 平臺安裝程式會藉由將 [新增] 按鈕取代為 [已安裝] 文字,來指出這一點。

  6. ASP.NET MVC 3 (Visual Studio 2010) 列中,按兩下 [新增]。

  7. 在瀏覽窗格中,按兩下 [ 伺服器]。

  8. [IIS 7 建議 的組態] 列中,按兩下 [ 新增]。

  9. [Web 部署工具 2.1] 列中,按兩下 [ 新增]。

  10. IIS:基本身份驗證 數據列中,按兩下 [ 新增]。

  11. [IIS:管理服務 ] 數據列中,按兩下 [ 新增]。

  12. 按一下 [Install] 。 Web Platform Installer 會顯示要安裝的產品清單,以及任何相關聯的相依性,並提示您接受授權條款。

    按兩下 [安裝]。Web 平台安裝程式會顯示產品清單,以及要安裝的任何相關相依性,並提示您接受授權條款。

  13. 檢閱授權條款,如果您同意條款,請按兩下 [ 我接受]。

  14. 安裝完成時,按兩下 [ 完成],然後關閉 [Web 平臺安裝程式 ] 視窗。

如果您在安裝 IIS 之前安裝 .NET Framework 4.0,您必須執行 ASP.NET IIS 註冊工具 (aspnet_regiis.exe) ,才能向 IIS 註冊最新版本的 ASP.NET。 如果您未這麼做,您會發現 IIS 會提供靜態內容 (,例如 HTML 檔案) ,但會在您嘗試瀏覽至 ASP.NET 內容時傳回 HTTP 錯誤 404.0 – 找不到 。 您可以使用下一個程式來確保已註冊 ASP.NET 4.0。

若要向 IIS 註冊 ASP.NET 4.0

  1. 按兩下 [開始],然後輸入 命令提示字元

  2. 在搜尋結果中,以滑鼠右鍵按兩下 [命令提示字元],然後按兩下 [ 以系統管理員身分執行]。

  3. 在 [命令提示字元] 視窗中,流覽至 %WINDIR%\Microsoft.NET\Framework\v4.0.30319 目錄。

  4. 輸入此指令,然後按 Enter:

    aspnet_regiis -iru
    
  5. 如果您打算在任何時間點裝載 64 位 Web 應用程式,您也應該向 IIS 註冊 64 位版本的 ASP.NET。 若要這樣做,請在 [命令提示字元] 視窗中,流覽至 %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 目錄。

  6. 輸入此指令,然後按 Enter:

    aspnet_regiis -iru
    

最佳做法是,此時再次使用 Windows Update,下載並安裝您已安裝之新產品和元件的任何可用更新。

設定 Web 管理服務

既然您已安裝所需的一切,下一個步驟是在 IIS 中設定 Web 管理服務。 概括而言,您必須完成下列工作:

  • 在伺服器層級啟用基本身份驗證。
  • 設定 Web 管理服務以接受遠端連線。
  • 啟動 Web 管理服務。
  • 檢查必要的 Web 管理服務委派規則是否已就緒。

設定 Web 管理服務

  1. 在 [ 開始 ] 功能表上,指向 [ 系統管理工具],然後按兩下 [ Internet Information Services (IIS) 管理員]。

  2. 在 [IIS 管理員] 的 [ 連線 ] 窗格中,按兩下伺服器節點 (例如 ,STAGEWEB1)

    在 [IIS 管理員] 的 [連線] 窗格中,按兩下伺服器節點 (,例如,STAGEWEB1) 。

  3. 在中央窗格中的 [IIS] 底下,按兩下 [ 驗證]。

    在中央窗格的 [IIS] 底下,按兩下 [驗證]。

  4. 以滑鼠右鍵按兩下 [基本身份驗證],然後按兩下 [ 啟用]。

    以滑鼠右鍵按兩下 [基本身份驗證],然後按兩下 [啟用]。

  5. 在 [ 連線 ] 窗格中,再次按下伺服器節點以返回最上層設定。

  6. 在中央窗格中的 [ 管理] 底下,按兩下 [ 管理服務]。

    在中央窗格中的 [管理] 底下,按兩下 [管理服務]。

  7. 在中央窗格中,選取 [啟用遠端連線]。

    注意

    如果 Web 管理服務已在執行中,您必須先停止它。

  8. 在 [ 動作] 窗格中,按兩下 [ 開始 ] 以啟動 Web 管理服務。

    在 [動作] 窗格中,按兩下 [開始] 以啟動 Web 管理服務。

  9. 如果系統提示您儲存您的設定,請按兩下 [ ]。

    注意

    您也可以將服務設定為自動啟動。 若要這樣做,請開啟 [服務] 控制台,以滑鼠右鍵按兩下 [Web 管理服務],然後按兩下 [ 屬性]。 在 [ 啟動類型] 下拉式清單中,選取 [ 自動],然後按兩下 [ 確定]。

  10. 在 [ 連線 ] 窗格中,再次按下伺服器節點以返回最上層設定。

  11. 在中央窗格中的 [ 管理] 底下,按兩下 [ 管理服務委派]。

    在中央窗格中的 [管理] 底下,按兩下 [管理服務委派]。

  12. 確認中央窗格包含一組規則。

    確認中央窗格包含一組規則。

    這些規則允許授權的 Web 管理服務使用者使用各種 Web Deploy 提供者。 例如,若要透過 Web 部署處理程式將 Web 應用程式和內容部署至 IIS,必須有一個委派規則,可讓所有已驗證的 Web 管理服務使用者使用 contentPathiisApp 提供者, (您在螢幕快照) 中看到的最後一個規則。

    如果您依本主題中所述的順序安裝產品和元件,最新版的Web Deploy應該會自動將所有必要的委派規則新增至Web Management Service。 如果 [管理服務委派] 頁面未顯示任何規則,您必須自行建立規則。 如需如何執行這項操作的指示,請參閱 設定 Web 部署處理程式

  13. 在 [ 連線 ] 窗格中,再次按下伺服器節點以返回最上層設定。

建立及設定 IIS 網站

您必須先建立並設定 IIS 網站來裝載內容,才能將 Web 內容部署至您的伺服器。 Web Deploy 只能將 Web 套件部署到現有的 IIS 網站;它無法為您建立網站。 您也需要執行一些額外的設定,以允許非系統管理員帳戶從遠端部署內容。 概括而言,您必須完成下列工作:

  • 在檔案系統上建立資料夾來裝載內容。
  • 建立 IIS 網站來提供內容,並將它與本機資料夾產生關聯。
  • 將讀取許可權授與本機資料夾上的應用程式集區身分識別。
  • 將部署 Web 應用程式的網域帳戶授與必要的 IIS 許可權。

雖然您不會停止將內容部署到 IIS 中的預設網站,但不建議針對測試或示範案例以外的任何專案使用此方法。 若要模擬生產環境,您應該建立新的 IIS 網站,其中包含應用程式需求特有的設定。

建立 IIS 網站

  1. 在本機文件系統上,建立資料夾以儲存內容 (例如 C:\DemoSite) 。

  2. 在 [ 開始 ] 功能表上,指向 [ 系統管理工具],然後按兩下 [ Internet Information Services (IIS) 管理員]。

  3. 在 [IIS 管理員] 的 [ 連線 ] 窗格中,展開伺服器節點 (,例如 ,STAGEWEB1) 。

    在 [IIS 管理員] 的 [連線] 窗格中,展開伺服器節點 (例如,STAGEWEB1) 。

  4. 以滑鼠右鍵按兩下 [ 網站] 節點,然後按兩下 [ 新增網站]。

  5. 在 [ 網站名稱 ] 方塊中,輸入 IIS 網站的名稱 (,例如 DemoSite) 。

  6. 在 [ 實體路徑 ] 方塊中,輸入 (或流覽以) 本機資料夾的路徑 (,例如 C:\DemoSite) 。

  7. 在 [ ] 方塊中,輸入您要裝載網站的埠號碼 (,例如 85) 。

    注意

    標準埠號碼為 HTTP 為 80,HTTPS 則為 443。 不過,如果您在埠 80 上裝載此網站,您必須先停止默認網站,才能存取您的網站。

  8. [主機名] 方塊保留空白,除非您想要為網站設定域名系統 (DNS) 記錄,然後按兩下 [ 確定]。

    將 [主機名] 方塊保留空白,除非您想要為網站設定域名系統 (DNS) 記錄,然後按兩下 [確定]。

    注意

    在生產環境中,您可能會想要在埠 80 上裝載您的網站,並設定主機標頭,以及相符的 DNS 記錄。 如需在 IIS 7 中設定主機標頭的詳細資訊,請參閱設定 網站主機標頭 (IIS 7) 。 如需 Windows Server 中 DNS 伺服器角色的詳細資訊,請參閱 DNS 伺服器概觀

  9. 在 [ 動作 ] 窗格的 [ 編輯站台] 下方,按一下 [ 繫結]。

  10. 在 [站台繫結] 對話方塊中,按一下 [新增]

    在 [網站系結] 對話框中,按兩下 [新增]。

  11. 在 [ 新增網站系結] 對話框中,設定 IP位址 ,以符合您現有的月臺設定。

  12. 在 [ 主機名] 方塊中,輸入網頁伺服器的名稱 (,例如 ,STAGEWEB1) ,然後按兩下 [ 確定]。

    在 [主機名] 方塊中,輸入網頁伺服器的名稱 (,例如,STAGEWEB1) ,然後按兩下 [確定]。

    注意

    第一個網站系結可讓您使用IP位址和埠或 http://localhost:85在本機存取網站。 第二個月臺系結可讓您使用電腦名稱 (,從網域上的其他計算機存取月臺,例如: http://stageweb1:85).

  13. 在 [站台繫結] 對話方塊中,按一下 [關閉]

  14. 在 [連線] 窗格中,按一下 [應用程式集區]

  15. 在 [ 應用程式集區] 窗格中,以滑鼠右鍵按兩下應用程式集區的名稱,然後按兩下 [ 基本設定]。 根據預設,應用程式集區的名稱會符合您的網站名稱 (,例如 DemoSite) 。

  16. .NET CLR 版本 清單中,選取 [.NET CLR v4.0.30319],然後按兩下 [ 確定]。

    在 .NET CLR 版本清單中,選取 [.NET CLR v4.0.30319],然後按兩下 [確定]。

    注意

    範例解決方案需要 .NET Framework 4.0。 這並非 Web Deploy 的一般需求。

為了讓您的網站提供內容,應用程式集區身分識別必須具有儲存內容的本機資料夾的讀取許可權。 在 IIS 7.5 中,應用程式集區預設會以唯一的應用程式集區身分識別執行 (,相較於舊版 IIS,應用程式集區通常會使用網路服務帳戶) 來執行。 應用程式集區身分識別不是真正的用戶帳戶,也不會顯示在任何使用者或群組清單上,而是在應用程式集區啟動時動態建立。 每個應用程式集區身分識別都會新增至本機 IIS_IUSRS 安全組作為隱藏專案。

若要將許可權授與檔案或資料夾上的應用程式集區身分識別,您有兩個選項:

  • 使用 IIS AppPool (應用程式集區名稱 格式直接指派給應用程式集區身分識別,例如 IIS AppPool\DemoSite) ,) (。
  • 將許可權指派給 IIS_IUSRS 群組。

最常見的方法是將許可權指派給本機 IIS_IUSRS 群組,因為這種方法可讓您變更應用程式集區,而不需重新設定檔系統許可權。 下一個程式會使用此群組型方法。

注意

如需 IIS 7.5 中應用程式集區身分識別的詳細資訊,請參閱 應用程式集區身分識別

設定 IIS 網站的資料夾許可權

  1. 在 Windows 檔案總管中,流覽至本機資料夾的位置。

  2. 在資料夾上按一下滑鼠右鍵,然後按一下 [內容]

  3. 在 [Security] 索引標籤上按一下 [Edit],然後按一下 [Add]。

  4. 按一下 [位置]。 在 [ 位置] 對話框中,選取本地伺服器,然後按兩下 [ 確定]。

    按兩下 [位置]。在 [位置] 對話框中,選取本地伺服器,然後按兩下 [確定]。

  5. 在 [ 選取使用者或群組 ] 對話框中,輸入 IIS_IUSRS,按兩下 [ 檢查名稱],然後按兩下 [ 確定]。

  6. [ (資料夾名稱的許可權) ] 對話框中,請注意,新群組已獲指派 [讀取 & 執行]、[ 列出資料夾內容] 和 [ 讀取 ] 許可權。 保持不變,然後按兩下 [ 確定]。

  7. 按兩下 [確定 ] 關閉 [屬性] 對話框) (資料夾名稱

作為最後一項工作,您必須將適當的許可權授與您將用來部署內容的非系統管理員使用者。 此使用者需要從遠端將內容部署至您的網站的許可權。

設定非系統管理員網域使用者的 IIS 網站許可權

  1. 在 IIS 管理員的 [ 連線 ] 窗格中,以滑鼠右鍵按兩下您的網站節點 (,例如 DemoSite) ,指向 [ 部署],然後按兩下 [ 設定 Web 部署發佈]。

    在 IIS 管理員的 [連線] 窗格中,以滑鼠右鍵按兩下您的網站節點 (,例如 DemoSite) ,指向 [部署],然後按兩下 [設定 Web 部署發佈]。

  2. 在 [ 設定 Web 部署發佈 ] 對話方塊的 [ 選取要授與發佈許可權的使用者 ] 列表右側,按兩下省略號按鈕。

    在 [設定 Web 部署發佈] 對話方塊的 [選取要授與發佈許可權的使用者] 列表右側,按兩下省略號按鈕。

  3. 在 [ 允許使用者 ] 對話框中,輸入您要用來部署內容的帳戶網域和使用者名稱,然後按兩下 [ 確定]。

    在 [允許使用者] 對話框中,輸入您要用來部署內容的帳戶網域和使用者名稱,然後按兩下 [確定]。

  4. 在 [ 設定 Web 部署發佈 ] 對話框中,按兩下 [ 設定]。

    在 [設定 Web 部署發佈] 對話框中,按兩下 [設定]。

    注意

    此作業會在一個步驟中執行兩個主要功能。 首先,它會根據您在上一節中檢查的委派規則,授與使用者透過 Web 管理服務從遠端修改網站的許可權。 其次,它會授與用戶網站源數據夾的完整控制權,讓用戶能夠新增、修改及設定網站內容的許可權。

  5. 在 [ 設定 Web Deploy 發佈 ] 對話框中,按兩下 [ 關閉]。

設定防火牆例外狀況

根據預設,IIS Web 管理服務會接聽 TCP 連接埠 8172。 如果您的網頁伺服器上已啟用 Windows 防火牆,您必須建立新的輸入規則,以允許埠 8172 上的 TCP 流量, (Windows 防火牆) 預設允許所有輸出流量。 如果您使用第三方防火牆,您必須建立規則以允許流量。

方向 從埠 移植 連接埠類型
連入 任何 8172 TCP
傳出 8172 任何 TCP

如需在 Windows 防火牆中設定規則的詳細資訊,請參閱 設定防火牆規則。 如需第三方防火牆,請參閱您的產品檔。

結論

您的 Web 伺服器現在應該已準備好透過 Web 管理服務接受 Web Deploy 處理程式的遠端部署。 在您嘗試將 Web 應用程式部署至伺服器之前,建議您檢查下列重點:

  • 您是否已在 IIS 中的伺服器層級啟用基本身份驗證?
  • 您是否已啟用 Web 管理服務的遠端連線?
  • 您是否已啟動 Web 管理服務?
  • 是否有已就緒管理服務委派規則?
  • 應用程式集區身分識別是否具有網站源資料夾的讀取許可權?
  • 非系統管理員用戶帳戶是否具有 IIS 中的網站層級許可權?
  • 您的防火牆是否允許 TCP 連接埠 8172 上的伺服器連入連線?

深入閱讀

如需如何設定自定義 Microsoft Build Engine (MSBuild) 項目檔以將 Web 套件部署至 Web Deploy 處理程式的指引,請參閱設定目標環境的部署屬性