有没有办法使用Release Management v12创建一个包含主机标头选项的网站?
我的目标是能够在单个服务器上托管多个站点,所有站点都绑定到具有不同主机头的端口80。即http://project1.development.local/,http://project2.development.local/
我能够使用AppCmd.exe中的主机标头创建一个网站,但这需要管理权限。考虑使用PowerShell,但会触发UAC提示。
目前,我不得不手动创建服务器的网站以包含主机标头,我希望有一个完全自动化的发布流程。
TIA!
答案 0 :(得分:4)
它没有任何内置功能,但幸运的是,我已经将一些东西一起攻击以处理网站绑定:
param(
$SiteName=$(throw "Site Name must be entered"),
$HostHeader,
$IpAddress,
$Port,
$RemoveDefault=$(throw "You must specify true or false")
)
Import-Module WebAdministration
try {
$bindingExists = (Get-WebBinding "$SiteName" -Port "$Port" -Protocol "http" -HostHeader "$HostHeader" -IPAddress "$IpAddress")
if (!$bindingExists) {
Write-host "Creating binding for $SiteName : Host header $HostHeader and IP Address $IpAddress"
New-WebBinding "$SiteName" -Port $Port -Protocol "http" -HostHeader "$HostHeader" -IPAddress "$IpAddress"
}
else {
Write-host "Site $SiteName already has binding for host header $HostHeader and IP Address $IpAddress"
}
if ($RemoveDefault -eq "true") {
$defaultBinding = Get-WebBinding "$SiteName" | where {$_.bindingInformation -eq "*:80:" }
if ($defaultBinding -ne $null) {
Write-Host "Default binding exists... removing."
$defaultBinding | Remove-WebBinding
}
else {
Write-Host "Default binding does not exist"
}
}
}
catch {
Write-host $_
exit 1
}
exit 0
您可以在RM中创建自定义工具以利用此脚本,只需将param
块中指定的参数传递给它。
您永远不必使用AppCmd.exe ...如果内置工具无法满足您的需求,WebAdministration PowerShell模块应该能够执行其他所有操作。