設定 Web Deploy 發行的網頁伺服器 (離線部署)
演講者:Jason Lee
本主題介紹如何設定 IIS Web 伺服器以支援離線 Web 發佈和部署。
當您使用網際網路資訊服務 (IIS) Web 部署工具 (Web Deploy) 2.0 或更高版本時,可以使用三種主要方法將應用程式或網站部署到 Web 伺服器上。 您可以:
- 使用 Web 部署遠端代理服務。 此方法需要較少的 Web 伺服器設定,但您需要提供本機伺服器管理員的憑證才能將任何內容部署到伺服器。
- 使用 Web 部署處理常式。 這種方法要複雜得多,並且需要更多的初始工作來設定 Web 伺服器。 但是,當您使用此方法時,您可以將 IIS 設定為允許非管理員使用者執行部署。 Web 部署處理常式僅在 IIS 版本 7 或更高版本中可用。
- 使用離線部署。 此方法需要最少的 Web 伺服器設定,但伺服器管理員必須手動將 Web 套件複製到伺服器上並透過 IIS 管理員匯入。
有關這些方法的主要功能、優點和缺點的更多資訊,請參閱「選擇正確的 Web 部署方法」。
是的,如果您的網路基礎結構或安全性限制阻止遠端部署。 在面向網際網路的生產環境中最有可能出現這種情況,其中 Web 伺服器與伺服器基礎結構的其餘部分隔離 (實體隔離或透過防火牆和子網路隔離)。
顯然,如果您的 Web 應用程式定期更新,這種方法就不太理想了。 如果您的基礎結構允許,您可能需要考慮使用 Web 部署處理常式或 Web 部署遠端代理服務啟用遠端部署。
任務概述
若要設定 Web 伺服器以支援 Web 套件的離線匯入和部署,您需要:
- 安裝 IIS 7.5 和 IIS 7 建議設定。
- 安裝 Web 部署 2.1 或更高版本。
- 建立 IIS 網站來託管部署的內容。
- 停用 Web 部署代理服務。
要專門託管範例解決方案,您還需要:
- 安裝.NET Framework 4.0。
- 安裝 ASP.NET MVC 3。
本主題將示範如何執行其中每個流程。 本主題中的任務和演練假設您從執行 Windows Server 2008 R2 的乾淨伺服器版本開始。 在繼續之前,請確保:
- Windows Server 2008 R2 Service Pack 1 與所有可用更新已安裝。
- 伺服器已加入網域。
- 伺服器有一個靜態IP位址。
注意
有關將電腦加入網域的詳細資訊,請參閱「將電腦加入網域並登入」。 有關設定靜態 IP 位址的詳細資訊,請參閱「設定靜態 IP 位址」。
安裝產品和組件
本部分將指導您在 Web 伺服器上安裝所需的產品和元件。 在開始之前,一個很好的做法是執行 Windows Update 以確保您的伺服器完全是最新的。
在這種情況下,您需要安裝這些東西:
- IIS 7 建議設定。 這將在您的 Web 伺服器上啟用 Web 伺服器 (IIS) 角色,並安裝託管 ASP.NET 應用程式所需的一組 IIS 模組和元件。
- .NET Framework 4.0。 這是執行在此版本的 .NET Framework 上建立的應用程式所必需的。
- Web Deployment Tool 2.1 或更高版本。 這將在您的伺服器上安裝 Web 部署 (及其底層可執行檔 MSDeploy.exe)。 Web Deploy 與 IIS 集成,可讓您匯入和匯出 Web 套件。
- ASP.NET MVC 3。 這將安裝執行 MVC 3 應用程式所需的程序集。
注意
本演練說明如何使用 Web 平台安裝程式來安裝和設定各種元件。 儘管您不必使用 Web 平台安裝程序,但它會透過自動偵測依賴項並確保您始終獲得最新的產品版本來簡化安裝過程。 有關詳細資訊,請參閱「Microsoft Web Platform Installer 3.0」。
要安裝所需的產品和元件
下載並安裝 Web Platform Installer。
安裝完成後,Web Platform Installer 將自動啟動。
注意
現在,您隨時可以從「開始」功能表啟動 Web Platform Installer。 為此,請在「開始」功能表上按一下「所有程式」,然後按一下「Microsoft Web Platform Installer」。
在 Web Platform Installer 3.0 視窗頂部,按一下「產品」。
在視窗左側的導覽窗格中,按一下「Frameworks」。
在 Microsoft .NET Framework 4 行中,如果尚未安裝 .NET Framework,請按一下「新增」。
注意
您可能已經透過 Windows Update 安裝了 .NET Framework 4.0。 如果產品或元件已安裝,Web Platform Installer 將透過將「新增」按鈕替換為「已安裝」文字來指示這一點。
在 ASP.NET MVC 3 (Visual Studio 2010) 行中,按一下「新增」。
在導覽窗格中,按一下「伺服器」。
在「IIS 7 建議設定」行中,按一下「新增」。
在「Web Deployment Tool 2.1」行中,按一下「新增」。
按一下 [安裝]。 Web Platform Installer 會顯示要安裝的產品清單以及任何關聯的依賴項,並提示您接受授權條款。
查看授權條款,如果您同意這些條款,請按一下「我接受」。
安裝完成後,按一下「完成」,然後關閉「Web Platform Installer 3.0」視窗。
如果在安裝 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
按一下「開始」,然後鍵入 Command Prompt。
在搜尋結果中,以滑鼠以滑鼠右鍵按一下「Command Prompt」,然後按一下「以管理員身分執行」。
在命令提示字元視窗中,導覽至 %WINDIR%\Microsoft.NET\Framework\v4.0.30319 目錄。
鍵入此命令,然後按 Enter:
aspnet_regiis -iru
如果您打算隨時託管 64 位元 Web 應用程式,則您也應該向 IIS 註冊 64 位元版本的 ASP.NET。 為此,請在命令提示字元視窗中導覽至 %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 目錄。
鍵入此命令,然後按 Enter:
aspnet_regiis -iru
最佳做法是,此時再次使用 Windows 更新來下載並安裝已安裝的新產品和元件的任何可用更新。
設定 IIS 網站
在將 Web 內容部署到伺服器之前,您需要建立並設定 IIS 網站來託管該內容。 Web Deploy只能將Web套件部署到現有的IIS網站上;它無法為您建立網站。 在較高層級上,您需要完成以下任務:
- 在檔案系統上建立一個資料夾來託管您的內容。
- 建立一個 IIS 網站來提供內容,並將其與本機資料夾關聯。
- 授予對本機資料夾上的應用程式集區標識的讀取權限。
儘管沒有什麼可以阻止您將內容部署到 IIS 中的預設網站,但不建議將這種方法用於測試或演示方案以外的任何情況。 要模擬生產環境,您應該建立一個新的 IIS 網站,其中的設定特定於您的應用程式的要求。
要建立和設定 IIS 網站
在本機檔案系統上,建立一個資料夾來儲存您的內容 (例如,C:\DemoSite)。
在「開始」功能表上,指向「管理工具」,然後按一下「網際網路資訊服務 (IIS) 管理員」。
在 IIS 管理員的「連線」窗格中,展開伺服器節點 (例如 PROWEB1)。
以滑鼠以滑鼠右鍵按一下「網站」節點,然後按一下「新增網站」。
在「網站名稱」方塊中,鍵入 IIS 網站的名稱 (例如 DemoSite)。
在「實體路徑」方塊中,鍵入 (或瀏覽至) 本機資料夾的路徑 (例如,C:\DemoSite)。
在「連接埠」方塊中,鍵入要託管網站的連接埠號碼 (例如 85)。
注意
HTTP 的標準連接埠號碼為 80,HTTPS 的標準連接埠號碼為 443。 但是,如果您將此網站託管在連接埠 80 上,則需要先停止預設網站,然後才能造訪您的網站。
將「主機名稱」方塊保留為空,除非您要為網站設定網域名稱系統 (DNS) 記錄,然後按一下「確定」。
注意
在生產環境中,您可能想要在連接埠 80 上託管您的網站並設定主機標頭以及相符的 DNS 記錄。 有關在 IIS 7 中設定主機標頭的詳細資訊,請參閱「為網站設定主機標頭 (IIS 7)」。 有關 Windows Server 2008 R2 中 DNS 伺服器角色的詳細資訊,請參閱「DNS 伺服器概述」。
在 [ 動作 ] 窗格的 [ 編輯站台] 下方,按一下 [ 繫結]。
在 [站台繫結] 對話方塊中,按一下 [新增] 。
在「新增網站繫結」對話方塊中,設定 IP 位址和連接埠以符合您現有的網站設定。
在「主機名稱」方塊中,鍵入 Web 伺服器的名稱 (例如 PROWEB1),然後按一下「確定」。
注意
第一個網站繫結可讓您使用 IP 位址和連接埠或
http://localhost:85
在本機存取網站。 第二個網站繫結可讓您使用電腦名稱從網域中的其他電腦存取該網站 (例如,http://proweb1:85).在 [站台繫結] 對話方塊中,按一下 [關閉] 。
在 [連線] 窗格中,按一下 [應用程式集區]。
在「應用程式集區」窗格中,以滑鼠以滑鼠右鍵按一下應用程式集區的名稱,然後按一下「基本設定」。 預設情況下,應用程式集區的名稱將與您的網站名稱相符 (例如,DemoSite)。
在「.NET Framework 版本」清單中,選擇「.NET Framework 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 網站的資料夾權限
在 Windows Explorer 中,瀏覽至本機資料夾的位置。
在資料夾上按一下滑鼠右鍵,然後按一下 [內容]。
在「安全性」標籤上,按一下「編輯」,然後按一下「新增」。
點選位置。 在「位置」對話方塊中,選擇本機伺服器,然後按一下「確定」。
在「選擇使用者或群組」對話方塊中,鍵入 IIS_IUSRS,按一下「檢查名稱」,然後按一下「確定」。
在「(資料夾名稱) 的權限」對話方塊中,請注意預設已為新群組指派了「讀取&執行」、「列出資料夾內容」和「讀取」權限。 將其保持不變,並按一下「確定」。
按一下「確定」關閉 (資料夾名稱) 屬性對話方塊。
停用遠端代理服務
安裝 Web Deploy 時,將自動安裝並啟動 Web 部署代理服務。 該服務可讓您從遠端位置部署和發佈 Web 套件。 在這種情況下,您將不會使用遠端部署功能,因此您應該停止並停用該服務。
注意
您無需停止遠端代理服務即可手動匯入和部署 Web 套件。 但是,如果您不打算使用該服務,最好停止並停用該服務。
您可以使用各種命令列公用程式或 Windows PowerShell cmdlet 以多種方式停止和停用服務。 此程序描述了一種簡單的基於 UI 的方法。
要停止並停用遠端代理服務
在 [開始] 功能表上,指向 [系統管理工具] ,然後按一下 [服務] 。
在服務主控台中,找到「Web 部署代理服務」行。
以滑鼠以滑鼠右鍵按一下「Web 部署代理服務」,然後按一下「屬性」。
在「Web 部署代理服務屬性」對話方塊中,按一下「停止」。
在「啟動類型」清單中,選擇「已停用」,然後按一下「確定」。
結論
此時,您的 Web 伺服器已準備好進行離線 Web 套件部署。 在嘗試將 Web 套件匯入 IIS 網站之前,您可能需要檢查以下要點:
- 您是否已向 IIS 註冊了 ASP.NET 4.0?
- 應用程式集區標識是否具有對您網站的來源資料夾的讀取存取權?
- 您是否已停止 Web 部署代理服務?