2013-05-28 159 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功能更强大,但是有一些学习曲线可以使用它。