部署ASP.NET的三大技術(下) (3)
來源:互聯網
上載者:User
asp.net 除了“啟動畫面”對話方塊之外,使用者介面編輯器還提供了許多其他預定義的對話方塊,例如“許可協議”、“讀我檔案”、“註冊使用者”、“客戶資訊”等,這些對話方塊都可以利用圖五的“添加對話方塊”視窗直接加入。
八、部署IIS配置資訊
在準備部署ASP.NET應用程式的時候,一個必須考慮的重要問題是如何在部署應用的同時部署IIS的配置資訊。如果用直接複製的方法部署Web應用,例如用XCOPY命令、Windows資源管理員的複製功能、FTP操作等,部署操作顯然不涉及IIS的配置資訊,IIS的配置必須單獨設定,或者在目標機器上手工設定,或者編寫指令碼程式自動化佈建。
如果用VS.NET的“複製項目”功能部署應用,目標伺服器上會自動建立虛擬目錄,但IIS的配置資訊仍舊不會複製到目標伺服器上建立的虛擬目錄,建立的虛擬目錄只是從Web網站繼承預設的設定,也就是說,我們仍舊要單獨設定IIS的配置資訊。只有用Web安裝項目來部署ASP.NET應用程式,我們才可以讓安裝程式自動在目標機器上設定IIS的配置資訊。
要配置虛擬目錄的設定資訊,首先開啟檔案系統編輯器,右擊“Web應用程式檔案夾”,選擇菜單“屬性視窗”,開啟圖六的“屬性”視窗。
圖六
在圖六對話方塊中,我們可以配置許多重要的屬性,包括:
⑴ AllowDirectoryBrowsing:允許設定指定目錄的IIS瀏覽目錄屬性。這個設定項目相當於IIS管理器中Web網站屬性對話方塊目錄設定頁的“瀏覽目錄”檢查框,可以設定為True或False。
⑵ AllowReadAccess:該屬性允許設定檔案夾的IIS“讀取”屬性,可以設定成True或False。
⑶ AllowScriptSourceAccess:該屬性設定檔案夾的IIS“指令碼資源訪問”屬性。
⑷ AllowWriteAccess:該屬性設定檔案夾的IIS“寫入”屬性。
⑸ ApplicationProtection:該屬性設定檔案夾的IIS“應用程式保護”屬性,可以設定成vsdapLow、vsdapMedium、vsdapHigh。
⑹ AppMappings:該屬性設定檔案夾的IIS“應用程式對應”屬性。
■ 設定其他IIS屬性
某些IIS配置屬性不能在Web安裝項目的屬性視窗中直接設定,包括目錄安全的配置(匿名訪問,基本驗證或Windows驗證)、自訂錯誤等。
但是,我們可以用其他辦法解決問題,其中一種很有效辦法是在Windows安裝檔案中採用“自訂動作”。如前所述,我們可以用“自訂動作”在安裝結束時運行一些代碼,完成安裝期間未能執行的操作,自訂動作的代碼可以是DLL、執行檔案、指令碼或程式集。
■ 安裝ASP.NET Web應用
建立好Windows安裝檔案(.msi檔案)後,在目標伺服器上安裝ASP.NET應用就很方便了,只要在Windows資源管理員中雙擊.msi檔案就可以啟動安裝嚮導,安裝嚮導將協助使用者完成整個安裝過程。安裝好ASP.NET應用程式後,我們可以在控制台的“添加或刪除程式”功能中看到該應用程式,而且可以利用“添加或刪除應用程式”功能隨時刪除已安裝的ASP.NET應用。
九、VS.NET安裝項目 VS. 其他部署方案
如前所述,我們可以用下列方案之一來部署ASP.NET Web應用:
⑴ XCOPY或VS.NET的“複製項目”功能。
⑵ VS.NET的Web安裝項目。
任何技術都有局限,用XCOPY和“複製項目”功能部署.NET應用也不例外。一般地,它們只適用於比較簡單的、允許手工操作的場合,同時用於即時更新也很理想。但是,在某些場合,XCOPY不太適用,我們需要某種更加強大的部署方案,例如:
⑴ .NET應用程式用到了一些COM組件,我們想要自動部署這些COM組件(而不想手工部署),必須在安裝期間完成這些COM組件的註冊。
⑵ 需要在遠端電腦上把一個程式集先行編譯成機器碼。
⑶ 需要將一些程式集安裝到遠程機器的Global Assembly Cache。
⑷ 需要將一個應用程式安裝成Windows服務。
⑸ 打算建立案頭捷徑、把程式加入到“添加或刪除程式”清單、建立“開始”菜單的捷徑,等等。
在上面這些情況下,我們需要一種更加強大的部署方案,這就是VS.NET提供的Web部署項目。許多時候,實際使用某種部署方案的是終端使用者,終端使用者往往缺乏手工配置應用所必需的技能,VS.NET的Web安裝項目提供了很容易使用的使用者介面,把安裝期間必須執行的各種複雜的配置操作全部自動化。不僅如此,VS.NET的Web安裝項目還有下列優勢:
⑴ 當我們安裝一個應用程式時,有關應用的所有資訊都被記錄在一個Windows安裝資料庫中。如果我們要刪除該應用程式,系統會檢查安裝資料庫,確認其他應用程式不依賴於某些將要被刪除的組件,從而避免臭名昭著的DLL Hell問題。
⑵ 如果安裝失敗,可以執行徹底的回退,從系統清除一切安裝痕迹。
結束語:在這篇文章中,我們探討了部署ASP.NET Web應用程式的各種方案,包括XCOPY、VS.NET的“複製項目”功能,以及VS.NET的Web安裝項目,瞭解了各種部署方案的優缺點及其適用場合。希望本文介紹的內容對你有所協助。