Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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
C# IIS 7.0 vs 7.5站点Microsoft.Web.Administration.Site BindingCollection_C#_.net_Linq_Iis 7_Iis 7.5 - Fatal编程技术网

C# IIS 7.0 vs 7.5站点Microsoft.Web.Administration.Site BindingCollection

C# IIS 7.0 vs 7.5站点Microsoft.Web.Administration.Site BindingCollection,c#,.net,linq,iis-7,iis-7.5,C#,.net,Linq,Iis 7,Iis 7.5,我编写了一个程序,它接受主机名和站点名的列表,并将它们作为绑定添加到站点(如果它们在任何站点上都不存在)。该程序是用.NET4.0C#编写的 在本地(iis7.5,win7),下面的代码运行良好。它检测绑定并退出。在我的服务器(IIS 7.0,Win server 2008)上,检查失败,并且始终添加绑定。有什么好处 是LINQ查询错误,还是Microsoft.Web.Administration库在处理IIS 7.0时存在一些根本性的不足 以下是在两台机器上都可以使用的部分代码: Server

我编写了一个程序,它接受主机名和站点名的列表,并将它们作为绑定添加到站点(如果它们在任何站点上都不存在)。该程序是用.NET4.0C#编写的

在本地(iis7.5,win7),下面的代码运行良好。它检测绑定并退出。在我的服务器(IIS 7.0,Win server 2008)上,检查失败,并且始终添加绑定。有什么好处

是LINQ查询错误,还是Microsoft.Web.Administration库在处理IIS 7.0时存在一些根本性的不足

以下是在两台机器上都可以使用的部分代码:

ServerManager oIisMgr = new ServerManager();
Site oSite = oIisMgr.Sites[siteName];
string sBindInfo = ":80:" + this.StripUrl(hostName);

//See if this binding is already on some site
if (oIisMgr.Sites
    .Where(ST => ST.Bindings.Where(B => B.BindingInformation == sBindInfo).Any())
    .Any()) return true;

Binding oBinding = oSite.Bindings.CreateElement();
oBinding.Protocol = "http";
oBinding.BindingInformation = sBindInfo;
oSite.Bindings.Add(oBinding);

oIisMgr.CommitChanges();

为了记录在案,我发现了我的bug是什么。默认情况下,通过IIS管理控制台添加的、将“IP地址:”设置为所有未分配的的站点绑定都具有以下绑定字符串:

“*:80:some.domain.com”

我在代码中使用了这个:

“:80:some.domain.com”//请注意缺少的通配符

绑定可以工作,但是通过管理器设置的任何绑定都不会被我的LINQ查询记录为完全相同,因为我查询的是主机名绑定信息的无通配符版本