使用Rake创建IIS网站

时间:2012-07-14 08:19:57

标签: asp.net ruby iis rake

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

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

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

==编辑==

我记得有一段时间回来的是InetMgr(https://github.com/typesafe/inetmgr),这看起来有点不稳定,对我不起作用,但似乎不再支持。

2 个答案:

答案 0 :(得分: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。

我很乐意找到一个更好的解决方案,所以如果有人遇到更好的方法,可以添加答案,如果有更好的话,我会改变正确的答案。我找到的唯一两个用于执行此操作的库是海豚部署和7个数字的iis rake脚本,但不幸的是,它们都没有详细记录如何使用。

答案 1 :(得分:1)

我建议您查看Capistrano。 Capistrano是ruby / rails / ...应用程序的部署“框架”。查看getting started部分文档,然后查看有关如何部署到Windows Server with Capistrano的“教程”。