IIS 7.0与7.5站点Microsoft.Web.Administration.Site BindingCollection

时间:2011-02-25 18:55:19

标签: c# .net linq iis-7 iis-7.5

我编写了一个程序,该程序获取主机名和站点名称列表,如果它们在任何站点上都不存在,则将它们添加为站点绑定。该程序是用.NET 4.0 C#编写的。

本地(IIS 7.5,Win 7),下面的代码工作正常。它检测绑定并退出。在我的服务器(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();

1 个答案:

答案 0 :(得分:7)

为了记录,我发现了我的错误。默认情况下,通过IIS管理控制台添加的站点绑定将“IP地址:”设置为所有未分配,并为此绑定字符串提供:

“*:80:some.domain.com”

我在我的代码中使用了这个:

“:80:some.domain.com”//记下缺少的通配符

绑定有效,但是我的LINQ查询没有记录任何通过管理器设置的内容,因为我查询了主机名绑定信息的无通配符版本。