Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binding 更新applicationHost.config中的站点绑定_Binding_Iis 7.5 - Fatal编程技术网

Binding 更新applicationHost.config中的站点绑定

Binding 更新applicationHost.config中的站点绑定,binding,iis-7.5,Binding,Iis 7.5,我正在尝试向applicationHost.config文件添加站点绑定列表,而不是通过IIS 7.5手动添加每个站点绑定 <site name="new_site" id="6"> <application path="/" applicationPool="new_site"> <virtualDirectory path="/" physicalPath="D:\HTTP\wwwroot\newsite" /> </

我正在尝试向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中


这真的可能吗?还是我遗漏了什么?

您应该使用
Microsoft.Web.Administration
assembly并通过该API创建站点。下面是创建站点的示例


您应该使用
Microsoft.Web.Administration
程序集并通过该API创建站点。下面是创建站点的示例


您可以在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 domanname1.com domanname2.com domanname3.com
如果需要绑定到特定的IP地址,请用IP地址替换
*

您可以在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 domanname1.com domanname2.com domanname3.com
如果需要绑定到特定的IP地址,请用IP地址替换
*

您是否在64位机器上使用32位编辑器?如果是,Windows正在将您的编辑保存到C:\Windows\SysWOW64\inetsrv\Config\applicationHost.Config


请参见

您是否在64位机器上使用32位编辑器?如果是,Windows正在将您的编辑保存到C:\Windows\SysWOW64\inetsrv\Config\applicationHost.Config