有没有办法使用 Release Management v12 创建一个包含主机头选项的网站?
我的目标是能够在单个服务器上托管多个站点,所有站点都绑定(bind)到具有不同主机头的端口 80。即http://project1.development.local/ , http://project2.development.local/
我可以使用 AppCmd.exe 的主机 header 创建一个网站,但这需要管理权限。考虑过使用powershell,但会触发UAC提示。
目前,我必须手动创建服务器的网站以包含主机 header ,并且我希望有一个完全自动化的发布过程。
蒂亚!
最佳答案
它没有任何现成的东西,但幸运的是,我已经一起破解了一些东西来处理站点绑定(bind):
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 模块应该能够执行其他所有操作。
关于ms-release-management - 发布管理 12 - 创建带有主机标题的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293400/