我正在尝试将一个站点绑定列表添加到applicationHost.config文件,而不是通过IIS 7.5手动添加每个站点绑定。
<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 :(得分:0)
您应该使用Microsoft.Web.Administration
程序集并通过该API创建网站。以下是创建网站的示例
http://learn.iis.net/page.aspx/226/microsoftwebadministration/
答案 1 :(得分: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地址。
答案 2 :(得分:0)
您是否在64位计算机上使用32位编辑器?如果是这样,Windows将您的编辑保存到C:\ Windows \ SysWOW64 \ inetsrv \ Config \ applicationHost.config。