設定 Web Deploy 發行的網頁伺服器 (遠端代理程式)

作者 :Jason Lee

本主題描述如何使用 IIS Web 部署工具 (Web Deploy) 遠端代理程式服務,設定 Internet Information Services (IIS) Web 伺服器來支援 Web 發佈和部署。

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

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

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

Web Deploy 遠端代理程式是否適合您?

是,如果將部署內容的使用者可以在目的地伺服器上提供系統管理員的認證。 在下列類型的案例中,通常建議使用此方法:

  • 開發或測試環境,開發人員可完全控制目的地網頁伺服器和資料庫伺服器。
  • 小型組織,其中單一使用者或一小組用戶可控制整個應用程式生命週期。

在許多較大型的組織中,特別是針對預備或生產環境,授與使用者網頁伺服器上的系統管理員許可權通常並不實際。 在託管網頁伺服器的情況下,這特別不可能是這種情況。 此外,如果您打算從組建伺服器自動化部署,您可能不想使用系統管理員認證進行部署程式。 在這些情況下,使用 Web Deploy 處理程式 設定網頁伺服器以支援部署,可能會提供更滿意的選擇。

工作概觀

本主題描述如何使用 Web Deploy 遠端代理程式方法,設定 Internet Information Services (IIS) 7.5 網頁伺服器,以接受及部署遠端電腦的 Web 套件。 您將需要:

  • 安裝 IIS 7.5 和 IIS 7 建議的設定。
  • 安裝 Web Deploy 2.1 或更新版本。
  • 建立 IIS 網站來裝載已部署的內容。
  • 確定 Web Deployment Agent​ 服務正在執行。

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

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

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

  • 已安裝 Windows Server 2008 R2 Service Pack 1 和所有可用的更新。
  • 伺服器已加入網域。
  • 伺服器具有靜態IP位址。

注意

如需將計算機加入網域的詳細資訊,請參閱 將計算機加入網域和登入。 如需設定靜態 IP 位址的詳細資訊,請參閱 設定靜態 IP 位址。 IIS 6 及更新版本支援遠端代理程式服務,而且不需要您加入網域。 不過,本教學課程中的步驟是在 IIS 7.5 上開發和測試,而其他版本的程式可能會有所不同。

安裝產品和元件

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

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

  • IIS 7 建議的設定。 這可讓您在 網頁伺服器上啟用 Web Server (IIS) 角色,並安裝一組您需要的 IIS 模組和元件,以便裝載 ASP.NET 應用程式。
  • .NET Framework 4.0。 這是執行在此版本 .NET Framework 上建置的應用程式的必要專案。
  • Web 部署工具 2.1 或更新版本。 這會在伺服器上安裝 Web Deploy (及其基礎可執行檔,MSDeploy.exe) 。 在此程式中,它會安裝並啟動 Web Deployment Agent​ 服務。 此服務可讓您從遠端電腦部署 Web 套件。
  • ASP.NET MVC 3。 這會安裝執行MVC 3應用程式所需的元件。

注意

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

安裝必要的產品和元件

  1. 下載並安裝 Web Platform Installer

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

    注意

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

  3. [Web Platform Installer 3.0 ] 視窗頂端,按兩下 [ 產品]。

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

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

    注意

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

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

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

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

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

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

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

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

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

  12. 安裝完成時,按兩下 [ 完成],然後關閉 [Web Platform Installer 3.0 ] 視窗。

如果您在安裝 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,下載並安裝您已安裝之新產品和元件的任何可用更新。

設定 IIS 網站

您必須先建立並設定 IIS 網站來裝載內容,才能將 Web 內容部署至伺服器。 Web Deploy 只能將 Web 套件部署到現有的 IIS 網站;無法為您建立網站。 概括而言,您必須完成下列工作:

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

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

建立及設定 IIS 網站

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

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

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

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

  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 2008 R2 中 DNS 伺服器角色的詳細資訊,請參閱 DNS 伺服器概觀

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

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

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

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

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

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

    注意

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

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

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

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

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

    在 [.NET Framework 版本] 清單中,選取 [.NET Framework 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. 按兩下 [確定 ] 關閉 [屬性] 對話框) (資料夾名稱

在您嘗試將任何 Web 套件部署到伺服器之前,最後一項工作應確定 Web Deployment Agent​ 服務正在執行。 當您從遠端計算機部署套件時,Web Deployment Agent​ 服務會負責擷取和安裝套件的內容。 當您安裝 Web 部署工具並在網路服務身分識別下執行時,預設會啟動服務。

您可以使用各種命令行公用程式或 Windows PowerShell Cmdlet,檢查服務是否以多種不同方式執行。 此程式描述直接的UI型方法。

檢查 Web Deployment Agent​ 服務是否正在執行

  1. 在 [開始] 功能表上,指向 [系統管理工具] ,然後按一下 [服務] 。

  2. 找出 [Web Deployment Agent​ 服務] 資料列,並確認 [狀態] 已設定為 [已啟動]。

    找出 [Web Deployment Agent​ 服務] 資料列,並確認 [狀態] 設定為 [已啟動]。

  3. 如果服務尚未啟動,請按兩下 [ 啟動]。

設定防火牆例外狀況

根據預設,遠端代理程式服務會在此 URL 接聽 TCP 連接埠 80:

http://servername.com/MSDEPLOYAGENTSERVICE

在大部分情況下,您不需要為遠端代理程式服務設定任何其他防火牆規則,因為 Web 伺服器通常會接聽埠 80 上的 HTTP 要求。 如果您自定義安裝以接聽非標準埠,則必須視需要設定防火牆例外狀況。

結論

此時,您的網頁伺服器已準備好接受並安裝遠端計算機的 Web 套件。 在您嘗試將 Web 應用程式部署至伺服器之前,建議您檢查下列重點:

  • 您是否已向 IIS 註冊 ASP.NET 4.0?
  • 應用程式集區身分識別是否具有網站源資料夾的讀取許可權?
  • Web Deployment Agent​ 服務是否正在執行?

深入閱讀

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