不是最好的答案,但因为我找不到比下面建议的方法更简单的方法,所以我自己使用 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 脚本,不幸的是,这两个库似乎都没有很好地记录如何使用。