共用方式為


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

本主題說明如何使用 IIS Web 部署處理常式設定網際網路資訊服務 (IIS) Web 伺服器以支援 Web 發佈和部署。

當您使用 Web Deploy 2.0 或更高版本時,可以使用三種主要方法將應用程式或網站部署到 Web 伺服器上。 您可以:

  • 使用 Web 部署遠端代理服務。 此方法需要較少的 Web 伺服器設定,但您需要提供本機伺服器管理員的憑證才能將任何內容部署到伺服器。
  • 使用 Web 部署處理常式。 這種方法要複雜得多,並且需要更多的初始工作來設定 Web 伺服器。 但是,當您使用此方法時,您可以將 IIS 設定為允許非管理員使用者執行部署。 Web 部署處理常式僅在 IIS 版本 7 或更高版本中可用。
  • 使用離線部署。 此方法需要最少的 Web 伺服器設定,但伺服器管理員必須手動將 Web 套件複製到伺服器上並透過 IIS 管理員匯入。

有關這些方法的主要功能、優點和缺點的更多資訊,請參閱「選擇正確的 Web 部署方法」。

是的,如果您希望允許非管理員使用者將內容部署到特定的 IIS 網站。 在以下類型的情境中通常需要這種方法:

  • 在預備或生產環境中,觸發遠端部署的人員或服務帳戶不太可能存取伺服器管理員的憑證。
  • 託管環境,您希望遠端使用者能夠在不完全控制您的 Web 伺服器 (或造訪其他任何人的網站) 的情況下更新其網站。

在開發或測試情境中,或在較小的組織中,使用伺服器管理員憑證部署內容通常不會引起爭議。 在這些情境中,使用 Web 部署遠端代理服務來設定 Web 伺服器以支援部署提供了更直接的方法。

任務概述

若要設定 Web 伺服器以使用 Web 部署處理常式方法從遠端電腦接受和部署 Web 套件,您需要:

  • 建立或選擇一個網域使用者帳戶 (「非管理員使用者」),您將使用其憑證來執行部署。
  • 安裝 IIS 7.5,包括 Web 管理服務和基本驗證模組。
  • 安裝 Web 部署 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 伺服器上啟用 Web 伺服器 (IIS) 角色,並安裝託管 ASP.NET 應用程式所需的一組 IIS 模組和元件。
  • IIS:管理服務。 這將在 IIS 中安裝 Web 管理服務 (WMSvc)。 此服務支援 IIS 網站的遠端管理並向用戶端公開 Web 部署處理常式端點。
  • IIS:基本驗證。 這將安裝 IIS 基本驗證模組。 這允許 Web 管理服務 (WMSvc) 驗證您提供的憑證。
  • Web Deployment Tool 2.1 或更高版本。 這將在您的伺服器上安裝 Web 部署 (及其底層可執行檔 MSDeploy.exe)。 作為此流程的一部分,它會安裝 Web 部署處理常式並將其與 Web 管理服務整合。
  • .NET Framework 4.0。 這是執行在此版本的 .NET Framework 上建立的應用程式所必需的。
  • ASP.NET MVC 3。 這將安裝執行 MVC 3 應用程式所需的程序集。

注意

本演練說明如何使用 Web 平台安裝程式來安裝和設定各種元件。 儘管您不必使用 Web 平台安裝程序,但它會透過自動偵測依賴項並確保您始終獲得最新的產品版本來簡化安裝過程。 有關詳細資訊,請參閱 Microsoft Web Platform Installer

要安裝所需的產品和元件

  1. 下載並安裝 Web Platform Installer

  2. 安裝完成後,Web Platform Installer 將自動啟動。

    注意

    現在,您隨時可以從「開始」功能表啟動 Web Platform Installer。 為此,請在「開始」功能表上按一下「所有程式」,然後按一下「Microsoft Web Platform Installer」。

  3. 在「Web Platform Installer」視窗的頂部,按一下「產品」。

  4. 在視窗左側的導覽窗格中,按一下「Frameworks」。

  5. Microsoft .NET Framework 4 行中,如果尚未安裝 .NET Framework,請按一下「新增」。

    注意

    您可能已經透過 Windows Update 安裝了 .NET Framework 4.0。 如果產品或元件已安裝,Web Platform Installer 將透過將「新增」按鈕替換為「已安裝」文字來指示這一點。

    如果產品或元件已安裝,Web Platform Installer 將透過將「新增」按鈕替換為「已安裝」文字來指示這一點。

  6. ASP.NET MVC 3 (Visual Studio 2010) 行中,按一下「新增」。

  7. 在導覽窗格中,按一下「伺服器」。

  8. 在「IIS 7 建議設定」行中,按一下「新增」。

  9. 在「Web Deployment Tool 2.1」行中,按一下「新增」。

  10. 在「IIS:基本驗證」行中,按一下「新增」。

  11. 在「IIS:管理服務」行中,按一下「新增」。

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

    點擊安裝。 Web Platform Installer 將向您顯示產品清單以及要安裝的任何關聯依賴項,並提示您接受許可條款。

  13. 查看授權條款,如果您同意這些條款,請按一下「我接受」。

  14. 安裝完成後,按一下「完成」,然後關閉「Web Platform Installer」視窗。

如果在安裝 IIS 之前安裝了 .NET Framework 4.0,則需要執行 ASP.NET IIS 註冊工具 (aspnet_regiis.exe) 以向 IIS 註冊最新版本的 ASP.NET。 如果不這樣做,您會發現 IIS 將毫無問題地提供靜態內容 (如 HTML 檔案),但當您嘗試瀏覽 ASP.NET 內容時,它將傳回 HTTP Error 404.0 – Not Found。 您可以使用下一個流程來確保 ASP.NET 4.0 已註冊。

要將 ASP.NET 4.0 註冊到 IIS

  1. 按一下「開始」,然後鍵入 Command Prompt

  2. 在搜尋結果中,以滑鼠以滑鼠右鍵按一下「Command Prompt」,然後按一下「以管理員身分執行」。

  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 更新來下載並安裝已安裝的新產品和元件的任何可用更新。

設定 Web 管理服務

現在您已經安裝了所需的一切,下一步是在 IIS 中設定 Web 管理服務。 在較高層級上,您需要完成以下任務:

  • 在伺服器層級啟用基本驗證。
  • 設定 Web 管理服務以接受遠端連線。
  • 啟動 Web 管理服務。
  • 檢查所需的 Web 管理服務委派規則是否已到位。

要設定 Web 管理服務

  1. 在「開始」功能表上,指向「管理工具」,然後按一下「網際網路資訊服務 (IIS) 管理員」。

  2. 在 IIS 管理員的「連線」窗格中,按一下伺服器節點 (例如,STAGEWEB1)。

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

  3. 在中央窗格中的 IIS 下,按兩下「驗證」。

    在中央窗格中的 IIS 下,按兩下「驗證」。

  4. 以滑鼠以滑鼠右鍵按一下「基本驗證」,然後按一下「啟用」。

    以滑鼠以滑鼠右鍵按一下「基本驗證」,然後按一下「啟用」。

  5. 在「連線」窗格中,再次按一下伺服器節點以返回頂層設定。

  6. 在中心窗格的「管理」下,按兩下「管理服務」。

    在中心窗格的「管理」下,按兩下「管理服務」。

  7. 在中心窗格中,選擇「啟用遠端連線」。

    注意

    如果 Web 管理服務已在執行,您需要先將其停止。

  8. 在「動作」窗格中,按一下「啟動」以啟動 Web 管理服務。

    在「動作」窗格中,按一下「啟動」以啟動 Web 管理服務。

  9. 如果系統提示您儲存設定,請按一下「」。

    注意

    您可能還希望將服務設定為自動啟動。 為此,請開啟服務主控台,以滑鼠右鍵按一下「Web 管理服務」,然後按一下「屬性」。 在「啟動類型」下拉式清單中,選擇「自動」,然後按一下「確定」。

  10. 在「連線」窗格中,再次按一下伺服器節點以返回頂層設定。

  11. 在中心窗格中的「管理」下,按兩下「管理服務委派」。

    在中心窗格中的「管理」下,按兩下「管理服務委派」。

  12. 驗證中心窗格是否包含一組規則。

    驗證中心窗格是否包含一組規則。

    這些規則允許授權的 Web 管理服務使用者使用各種 Web 部署提供者。 例如,要透過 Web 部署處理常式將 Web 應用程式和內容部署到 IIS,必須有委派規則,允許所有經過驗證的Web 管理服務使用者使用 contentPathiisApp 提供者 (您可以在螢幕擷取畫面中看到最後一條規則) 。

    如果您按照本主題中所述的順序安裝了產品和元件,則最新版本的 Web Deploy 應自動將所有必要的委派規則新增至 Web 管理服務。 如果「管理服務委派」頁面未顯示任何規則,您需要自行建立它們。 有關如何執行此操作的說明,請參閱「設定 Web 部署處理常式」。

  13. 在「連線」窗格中,再次按一下伺服器節點以返回頂層設定。

建立和設定 IIS 網站

在將 Web 內容部署到伺服器之前,您需要建立並設定 IIS 網站來託管該內容。 Web Deploy只能將Web套件部署到現有的IIS網站上;它無法為您建立網站。 您還需要進行一些額外的設定,以允許您的非管理員帳戶遠端部署內容。 在較高層級上,您需要完成以下任務:

  • 在檔案系統上建立一個資料夾來託管您的內容。
  • 建立一個 IIS 網站來提供內容,並將其與本機資料夾關聯。
  • 授予對本機資料夾上的應用程式集區標識的讀取權限。
  • 向將部署 Web 應用程式的網域帳戶授予必要的 IIS 權限。

儘管沒有什麼可以阻止您將內容部署到 IIS 中的預設網站,但不建議將這種方法用於測試或演示方案以外的任何情況。 要模擬生產環境,您應該建立一個新的 IIS 網站,其中的設定特定於您的應用程式的要求。

要建立 IIS 網站

  1. 在本機檔案系統上,建立一個資料夾來儲存您的內容 (例如,C:\DemoSite)。

  2. 在「開始」功能表上,指向「管理工具」,然後按一下「網際網路資訊服務 (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. 在「主機名稱」方塊中,鍵入 Web 伺服器的名稱 (例如 STAGEWEB1),然後按一下「確定」。

    在「主機名稱」方塊中,鍵入 Web 伺服器的名稱 (例如 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 部署的要求。

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

若要向檔案或資料夾上的應用程式集區標識授予權限,您有兩種選擇:

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

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

注意

有關 IIS 7.5 中應用程式集區識別的詳細資訊,請參閱「應用程式集區識別碼」。

要設定 IIS 網站的資料夾權限

  1. 在 Windows Explorer 中,瀏覽至本機資料夾的位置。

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

  3. 在「安全性」標籤上,按一下「編輯」,然後按一下「新增」。

  4. 點選位置。 在「位置」對話方塊中,選擇本機伺服器,然後按一下「確定」。

    按一下「位置」。在「位置」對話方塊中,選擇本機伺服器,然後按一下「確定」。

  5. 在「選擇使用者或群組」對話方塊中,鍵入 IIS_IUSRS,按一下「檢查名稱」,然後按一下「確定」。

  6. 在「(資料夾名稱) 的權限」對話方塊中,請注意預設已為新群組指派了「讀取&執行」、「列出資料夾內容」和「讀取」權限。 將其保持不變,並按一下「確定」。

  7. 按一下「確定」關閉 (資料夾名稱) 屬性對話方塊。

最後一項任務,您必須向非管理員使用者授予適當的權限,您將使用其憑證來部署內容。 該使用者需要具有將內容遠端部署到您的網站的權限。

要為非管理員網域使用者設定 IIS 網站權限

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

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

  2. 在「設定 Web 部署發佈」對話方塊中,在「選擇授予發佈權限的使用者」清單右側,按一下省略號按鈕。

    在「設定 Web 部署發佈」對話方塊中,在「選擇授予發佈權限的使用者」清單右側,按一下省略號按鈕。

  3. 在「允許使用者」對話方塊中,鍵入要用於部署內容的帳戶的網域和使用者名稱,然後按一下「確定」。

    在「允許使用者」對話方塊中,鍵入要用於部署內容的帳戶的網域和使用者名稱,然後按一下「確定」。

  4. 在「設定 Web 部署發佈」對話方塊中,按一下「設定」。

    在「設定 Web 部署發佈」對話方塊中,按一下「設定」。

    注意

    此操作一步執行兩個關鍵功能。 首先,它根據您在上一節中檢查的委派規則,授予使用者透過 Web 管理服務遠端修改網站的權限。 其次,它授予使用者對網站來源資料夾的完全控制權,允許使用者新增、修改和設定網站內容的權限。

  5. 在「設定 Web 部署發佈」對話方塊中,按一下「關閉」。

設定防火牆例外狀況

預設情況下,IIS Web 管理服務會偵聽 TCP 連接埠 8172。 如果您的 Web 伺服器上啟用了 Windows 防火牆,則需要建立新的入站規則以允許連接埠 8172 上的 TCP 流量 (Windows 防火牆預設允許所有出站流量)。 如果您使用第三方防火牆,則需要建立規則以允許流量。

方向 從港口出發 至港口 連接埠類型
傳入 任意 8172 TCP
輸出 8172 任意 TCP

有關在 Windows 防火牆中設定規則的詳細資訊,請參閱「設定防火牆規則」。 對於第三方防火牆,請查閱您的產品文件。

結論

您的 Web 伺服器現在應該已準備好透過 Web 管理服務,接受對 Web 部署處理常式的遠端部署。 在嘗試將 Web 應用程式部署到伺服器之前,您可能需要檢查以下要點:

  • 您是否在 IIS 中的伺服器層級啟用了基本驗證?
  • 您是否啟用了與 Web 管理服務的遠端連線?
  • 您是否啟動了Web管理服務?
  • 是否有管理服務授權規則?
  • 應用程式集區標識是否具有對您網站的來源資料夾的讀取存取權?
  • 非管理員使用者帳號在 IIS 中是否具有網站級權限?
  • 您的防火牆是否允許 TCP 連接埠 8172 上到伺服器的傳入連線?

深入閱讀

如需如何設定自訂 Microsoft Build 引擎 (MSBuild) 專案檔案以將 Web 套件部署至 Web 部署處理常式的指南,請參閱「設定目標環境的部署屬性」。