我正在使用rake和albacore来构建我的.net ASP.MVC项目,但是到目前为止我还无法自动化的一部分是将构建的项目部署到IIS。目前,在开发人员机器上,我让开发人员手动创建网站,并将其链接到由构建生成的发布的输出文件夹。
然而,既然我们已经设置了CI框(Teamcity),我需要将网站的设置自动化到IIS,那么有什么rake任务可以在IIS上创建网站吗?我记得以前见过一次,但找不到。
我可以安装IIS 6元脚本(不记得它的确切名称)和任何其他iis插件,该框目前运行IIS 7.5。
==编辑==
我记得前一段时间看到的是InetMgr (https://github.com/typesafe/inetmgr),它看起来有点不稳定,对我不起作用,但似乎没有得到进一步的支持。
发布于 2012-07-16 11:34:22
这不是最好的答案,但由于找不到比下面提出的方法更简单的方法,我只是用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 32/inetsrv。
我想找到一个更好的解决方案,所以如果有人遇到了一个更好的方法,添加答案,我会改变正确的答案,如果它更好。我发现的唯一两个库是海豚部署和7个数字的iis rake脚本,这两个库似乎都没有很好地说明如何使用。
发布于 2012-07-14 11:15:30
我建议你去看看卡皮斯特拉诺。Capistrano是用于ruby/rails/.应用程序。查看文档的开始部分,然后查看如何部署到Windows服务器与Capistrano的“教程”。
https://stackoverflow.com/questions/11482177
复制相似问题