【问题标题】:Automated deployment of web site网站自动部署
【发布时间】:2013-05-28 03:16:57
【问题描述】:

我打算自动部署一个网站,但我现在有点卡住了。我看过 MS-Deploy,它拥有部署网站的所有功能。我创建了一个 Web 应用程序包(.ZIP 文件),并在我正在部署网站的本地计算机上对其进行了测试,即

  1. 在默认网站下创建Web应用程序
  2. 在 c:\inetpub\wwwroot 目录中发布文件
  3. 在目录等上设置 ACL

但我想实现更多额外的步骤,例如:

  1. 检查默认网站中是否存在Web应用程序,如果不存在 创建 Web 应用程序
  2. 检查应用程序池是否存在,如果不存在则创建应用程序池 (给定名称)具有特定凭据并将应用程序池分配给 Web 应用
  3. 在部署之前,备份现有 Web 应用程序(如果 存在)
  4. 发布离线页面 (app_offline.htm)
  5. 将文件发布到应用程序目录
  6. 将 AppSettings 部分(在 web.config 文件中)替换为实际值
  7. 加密 Web.config 连接字符串

如果在安装 Web 应用程序时出现任何错误,请将 Web 应用程序回滚到之前的版本

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

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

提前致谢

【问题讨论】:

    标签: deployment web-deployment msdeploy


    【解决方案1】:

    我不是该主题的专家,但最近一直在对使用 MSDeploy 进行自动化部署进行一些研究,并认为我可以提供以下内容;

    1. 如果您使用 iisApp 提供程序,这是默认行为。
    2. 我知道您可以使用appPoolConfig 提供程序执行此操作,但我不确定您将如何将它和#1 作为同一包的一部分一起运行。也许作为同步前或同步后命令的一部分?
    3. 这是 v3 中的标准,只要它是在服务器上设置的。我自己没用过,但read this 反正。
    4. 很麻烦。 MSDeploy 不支持,但如果需要,you can vote for it。另外,check out this SO answer(也值得一试PackageWeb,但答案的作者相同)。
    5. 不确定我是否关注。这肯定是成功部署的一部分吗?
    6. 使用 web.config 转换和可选的前面提到的PackageWeb 以获得一种简洁的方式来执行此操作。另请查看Web Publish Profiles
    7. 很难。我的理解是加密基于 machine.config,因此您要么必须运行一个同步后脚本,该脚本将在远程服务器上运行某种远程 Powershell 脚本,以使用 aspnet_regiis 加密 web.config ,或者您必须在构建过程中加密配置,然后使用自定义密钥和 RSA 提供程序 (some info here)。

    我希望这会有所帮助。正如我所说,我不是专家,很高兴被那些更有知识的人纠正。也许还值得一提的是,如果您通过命令行使用 MSDeploy,而不是从 VS 创建包,那么它的功能要强大得多,尽管它有一些学习曲线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      相关资源
      最近更新 更多