2013-05-28 198 views
1

我打算做一個網站的自動化部署,但這種時候我仍然堅持着。我已經看過MS-Deploy,它具有部署網站的所有功能。我有一個創建了一個Web應用程序包(.ZIP文件),我測試了我的本地機器上正在部署的網站即網站的自動部署

  1. C語言創建默認下網站的Web應用程序
  2. 發佈文件:\的Inetpub \ wwwroot文件目錄
  3. 目錄上設置ACL等

但我想實現例如幾個額外的步驟:

  1. 檢查是否Web應用程序存在於默認網站,如果不是 創建Web應用程序
  2. 應用程序池檢查是否存在,如果不創建一個特定的憑證和分配應用程序池與Web 應用程序的應用程序池 (教名)
  3. 之前,部署利用現有的Web應用程序的備份副本(IF 存在)
  4. 發佈離線頁面(app_offline.htm)
  5. 文件發佈到應用程序目錄
  6. 更換appSettings部分(在網頁。配置文件)與實際值
  7. 加密Web.config中的連接字符串

如果同時安裝Web應用程序的任何錯誤,回滾Web應用程序到其以前的版本

的問題是,我能否實現所有這些功能通過MS-Deploy或者我是否需要編寫任何腳本,請告訴我我應該使用哪種腳本語言

如果您需要更多信息,請讓我知道。

在此先感謝

回答

0

我不是這方面的專家,但已經做了一些研究與MSDeploy自動部署還很少,覺得我可以提供以下;

  1. 如果您使用iisApp提供程序,這是默認行爲。
  2. 我知道你可以用appPoolConfig提供者來做到這一點,但我不確定你將如何將這個和#1作爲同一個包的一部分一起運行。也許作爲預先或後續同步命令的一部分?
  3. 這是v3中的標準,只要它在服務器上設置即可。不用我自己,但無論如何read this
  4. Fiddly。在MSDeploy中不受支持,但如果需要,則可以使用you can vote for it。另外,check out this SO answer(也值得檢查PackageWeb,但答案相同的作者)。
  5. 不確定我關注。這是成功部署的一部分,當然?
  6. 使用網頁。配置轉換和可選的上述PackageWeb一個整潔的方式來做到這一點。也檢查出Web Publish Profiles
  7. 困難。我的理解是,加密基於machine.config,因此您必須運行一個後同步腳本,該腳本會在遠程服務器上運行某種遠程Powershell腳本,以使用aspnet_regiis加密web.config,或者您必須將配置作爲構建過程的一部分加密,然後使用自定義密鑰和RSA提供程序(some info here)。

我希望有所幫助。正如我所說,我不是專家,很高興能被那些更有知識的人糾正。也許值得一提的是,如果你通過命令行使用MSDeploy,而不是從VS創建軟件包,MSDeploy功能更強大,但是有一些學習曲線可以使用它。