【问题标题】:.NET Web Application and Windows Service Automatic Deployment.NET Web 应用和 Windows 服务自动部署
【发布时间】:2014-09-15 10:36:57
【问题描述】:

这 2 个项目需要通过 VPN 部署到多个环境。 其他环境将随着时间的推移而需要。

当前部署策略:

使用 CCNet 进行构建自动化。

网络应用程序:

  • Web 部署包
  • MSBuild
  • 网络部署

Windows 服务:

  • MsBuild
  • RoboCopy + 净份额
  • 用于(卸载)安装启动/停止服务的 MSBuild 扩展包

当前策略的问题:

  • Web Deploy 需要安装在所有目标 Web 服务器上。
  • IIS 配置:(远程管理服务、用户、委托规则)
  • 服务文件复制和安装需要网络共享
  • MSBuild 扩展包依赖项
  • 为服务安装禁用 UAC

总的来说,这似乎并没有那么糟糕,但考虑到这需要针对很多环境进行设置,它很快就会成为一个问题。

同时创建网络共享、禁用 UAC、IIS 远程管理服务可能会被视为安全问题。

正在寻找一种方法来部署 Web 应用程序以及配置要求较低的 Windows 服务。

替代方案?

CCNET 构建发布者

而不是 Web 部署包。

将删除 Web Deploy 依赖项,但不确定它是否可以在 VPN 上运行,并且看不到指定用户名/密码的方法。

sc.exe

安装/卸载服务。

将删除 MSBuild 扩展包和 Robo Copy 依赖项。

这似乎在域计算机上工作,但也不确定 VPN 连接和 UAC 在这种情况下似乎也是一个问题。

Powershell?

更新:

设法使用 powershell 安装服务: http://www.geoffhudik.com/tech/2012/3/22/install-a-windows-service-remotely-with-powershell.html

一种方法。在 Windows 7 上使用 MapNetworkDrive 创建驱动器共享时出现问题,因此我必须使用 net use 执行此操作 仍在考虑替代方案。

【问题讨论】:

    标签: .net deployment msbuild cruisecontrol.net webdeploy


    【解决方案1】:

    对于复制文件,您可以使用 UNC 共享来实现您的结果。这将满足减少在服务器中安装工具的要求的愿望,假设 UNC 是一种选择。

    其他选项可能是:

    1. 在服务器上安装 ftp 并通过 ftp 上传文件
    2. 编写一个接受 zip 文件(或一系列文件)的服务/Web 应用程序 - 此时您基本上是在重新发明 ftp 或 Web 部署。

    至于安装/更新 windows 服务,您很可能需要某种托管服务来协调与 windows 的关联。

    其他选项可能是:

    1. 复制文件后使用 psexec 运行 sc.exe(通过 ccnet 构建)
    2. 编写一个以足够高权限运行的服务/Web 应用程序,以通过 .net 安装和控制服务

    这些只是选项,而不是建议,我个人认为 WebDeploy 本身就足够了。安装 WebDeploy 的痛苦远远超过它提供的安全性。就我个人而言,我不希望任何 UNC 访问或来自我的服务器(安全网络与否),因此我不推荐此选项。

    一种可能的解决方案是:

    1. 使用 WebDeploy 发布新的/更新的站点文件; WebDeploy 可以根据需要创建新的网站和应用程序。您应该也可以将其用于 Windows 服务。
    2. 对于 windows 服务,使用 WebDeploy runCommand 提供程序在更新前后停止和启动您的服务,请参阅http://technet.microsoft.com/en-us/library/ee619740(v=WS.10).aspx

    只要在服务器和 ccnet 服务器上安装 WebDeploy,这一切都应该是可能的。

    不需要 IIS 远程管理、文件共享和 msbuild(及其包),从而减少了一些配置。 WebDeploy 的安装和配置可以自动化:http://www.iis.net/learn/publish/using-web-deploy/powershell-scripts-for-automating-web-deploy-setup

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2014-09-01
      • 2014-01-06
      相关资源
      最近更新 更多