5

我正在使用 rake 和 albacore 构建我的.net ASP MVC项目,但是到目前为止我无法自动化的一部分是将构建的项目部署到 IIS。目前在开发人员机器上,我让开发人员手动创建网站并将它们链接到构建生成的已发布输出文件夹。

但是,现在我们有了 CI 框设置(Teamcity),我需要自动将网站设置到 IIS,那么是否有任何 rake 任务可以在 IIS 上创建网站?我记得前一阵子看到过,但找不到。

我可以安装 IIS 6 元脚本的东西(不记得它的确切名称)和任何其他 iis 插件,该框当前运行 IIS 7.5。

== 编辑 ==

我记得不久前看到的是 InetMgr (https://github.com/typesafe/inetmgr),它似乎有点不稳定,对我不起作用,但似乎不再受支持。

4

2 回答 2

6

不是最好的答案,但因为我找不到比下面建议的方法更简单的方法,所以我自己使用 appcmd 写了一些东西:

def create_web_site(site_name, site_location, site_port)
  delete_command = "#{$file["appcmd"]} delete site #{site_name}"
  result = system delete_command
  puts "Failed to delete site on IIS: #{$?}" unless result

  add_command = "#{$file["appcmd"]} add site /name:#{site_name} /bindings:http/*:#{site_port}: /physicalPath:#{site_location}"
  result = system add_command
  raise "Failed to add site on IIS: #{$?}" unless result

  set_app_pool_command = "#{$file["appcmd"]} set app #{site_name}/ /applicationPool:\"ASP.NET v4.0\""
  result = system set_app_pool_command
  raise "Failed to bind site to .net 4 app pool on IIS: #{$?}" unless result

  start_site_command = "#{$file["appcmd"]} start site #{site_name}"
  result = system start_site_command
  raise "Failed to start site on IIS: #{$?}" unless result
end

$file["appcmd"]上面是我的构建脚本的全局文件查找,这是 c:/windows/system32/inetsrv。

我很想找到一个更好的解决方案,所以如果有人遇到更好的方法来添加答案,如果它更好,我会更改正确的答案。我发现的唯一 2 个库是 dolphin deploy 和 7 digital 的 iis rake 脚本,不幸的是,这两个库似乎都没有很好地记录如何使用。

于 2012-07-16T11:34:22.637 回答
1

我建议你去看看Capistrano。Capistrano 是 ruby​​/rails/... 应用程序的部署“框架”。查看文档的入门部分,然后查看有关如何使用 Capistrano 部署到 Windows Server 的“教程” 。

于 2012-07-14T11:15:30.207 回答