发布管理12 - 使用主机标头创建网站

时间:2014-04-25 12:38:12

标签: ms-release-management

有没有办法使用Release Management v12创建一个包含主机标头选项的网站?

我的目标是能够在单个服务器上托管多个站点,所有站点都绑定到具有不同主机头的端口80。即http://project1.development.local/http://project2.development.local/

我能够使用AppCmd.exe中的主机标头创建一个网站,但这需要管理权限。考虑使用PowerShell,但会触发UAC提示。

目前,我不得不手动创建服务器的网站以包含主机标头,我希望有一个完全自动化的发布流程。

TIA!

1 个答案:

答案 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模块应该能够执行其他所有操作。