Deployment 网站的自动部署

Deployment 网站的自动部署,deployment,web-deployment,msdeploy,Deployment,Web Deployment,Msdeploy,我计划做一个网站的自动部署,但我现在有点卡住了。我已经看过了微软的部署,它拥有部署网站的所有功能。我已经创建了一个Web应用程序包(.ZIP文件),并在我的本地机器上进行了测试,它正在部署网站,即 在默认网站下创建Web应用程序 在c:\inetpub\wwwroot目录中发布文件 在目录等上设置ACL 但我想实现更多的额外步骤,例如: 检查默认网站中是否存在Web应用程序,如果不存在 创建Web应用程序 检查应用程序池是否存在,如果不存在,请创建应用程序池 (给定名称)具有特定凭据,并将应用程

我计划做一个网站的自动部署,但我现在有点卡住了。我已经看过了微软的部署,它拥有部署网站的所有功能。我已经创建了一个Web应用程序包(.ZIP文件),并在我的本地机器上进行了测试,它正在部署网站,即

  • 在默认网站下创建Web应用程序
  • 在c:\inetpub\wwwroot目录中发布文件
  • 在目录等上设置ACL
  • 但我想实现更多的额外步骤,例如:

  • 检查默认网站中是否存在Web应用程序,如果不存在 创建Web应用程序
  • 检查应用程序池是否存在,如果不存在,请创建应用程序池 (给定名称)具有特定凭据,并将应用程序池分配给Web 应用
  • 在部署之前,获取现有Web应用程序的备份副本(如果需要) 存在)
  • 发布脱机页面(app_offline.htm)
  • 将文件发布到应用程序目录
  • 将AppSettings部分(在web.config文件中)替换为实际值
  • 加密Web.config连接字符串
  • 如果在安装web应用程序时出现任何错误,请将web应用程序回滚到以前的版本

    问题是我是否可以通过MS Deploy实现所有这些功能,或者我是否需要编写脚本,请建议我应该使用什么脚本语言

    如果你需要更多信息,请告诉我


    提前感谢

    我不是这方面的专家,但最近一直在研究MSDeploy的自动部署,我认为我可以提供以下内容:

  • 如果使用提供程序,这是默认行为
  • 我知道您可以与提供商一起执行此操作,但我不确定您如何将此和#1作为同一软件包的一部分一起运行。可能是作为同步前或同步后命令的一部分
  • 这在v3中是标准的,只要它是在服务器上设置的。我自己没用过,但无论如何
  • 烦躁地。MSDeploy中不支持,但如果需要。还有,(也值得一看,但答案是相同的作者)
  • 我不太明白。当然,这是成功部署的一部分
  • 使用web.config转换和前面提到的方法,可以很方便地实现这一点。还可以查看
    Web发布配置文件
  • 困难。我的理解是加密是基于machine.config的,因此您必须运行一个同步后脚本,该脚本将在远程服务器上运行某种远程Powershell脚本,以使用
    aspnet\u regiis
    对web.config进行加密,或者,作为构建过程的一部分,您必须对配置进行加密,然后使用自定义密钥和RSA提供程序()
  • 我希望这有帮助。正如我所说,我不是专家,所以很高兴被那些更有知识的人纠正。也许还值得一提的是,如果您通过命令行使用MSDeploy,而不是从VS创建包,那么它的功能会强大得多,尽管它有一些学习曲线