2012-04-28 25 views
2

我正在尝试将一个站点绑定列表添加到applicationHost.config文件,而不是通过IIS 7.5手动添加每个站点绑定。在applicationHost.config中更新站点绑定

<site name="new_site" id="6"> 
    <application path="/" applicationPool="new_site"> 
     <virtualDirectory path="/" physicalPath="D:\HTTP\wwwroot\newsite" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:80:example.com" /> 
     <binding protocol="http" bindingInformation="*:80:www.example.com" /> 
     <binding protocol="http" bindingInformation="*:80:example2.com" /> 
     <binding protocol="http" bindingInformation="*:80:www.example2.com" /> 
    </bindings> 
</site> 

这样做的原因这是我2000和绑定的增加,这将是一个更容易做,如果我可以直接编辑配置文件。

编辑配置文件时,绑定不起作用或在IIS中显示。

这实际上是可能的还是我错过了什么?

回答

0

你可以写一个脚本这在PowerShell中的例子:

[Reflection.Assembly]::Load(
"Microsoft.Web.Administration, Version=7.0.0.0, 
Culture=Neutral, PublicKeyToken=31bf3856ad364e35") > $null 

$siteId = 6 
$serverManager = New-Object Microsoft.Web.Administration.ServerManager 
$site = $serverManager.Sites | where { $_.Id -eq $siteID } 

# Read your list of hostnames 

$reader = [System.IO.File]::OpenText("c:\\hostnames.txt") 
for(;;) 
{ 
    $domainName = $reader.ReadLine() 
    if($domainName -eq $null) { break } 
    $binding1 = "*:80:www." + $domainName 
    $binding2 = "*:80:" + $domainName 
    $site.Bindings.Add($binding1, "http") 
    $site.Bindings.Add($binding2, "http") 
} 
$serverManager.CommitChanges() 

文件c:\\hostnames.txt将包含所有域名的列表,例如:

 
domanname1.com 
domanname2.com 
domanname3.com 

如果您需要绑定到特定IP地址,请用IP地址替换*