【问题标题】:IIS 7.0 vs 7.5 Site Microsoft.Web.Administration.Site BindingCollectionIIS 7.0 与 7.5 站点 Microsoft.Web.Administration.Site BindingCollection
【发布时间】:2011-02-25 18:55:19
【问题描述】:

我编写了一个程序,它获取主机名列表和站点名称,如果它们在任何站点上尚不存在,则将它们作为绑定添加到站点。该程序是用 .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();

【问题讨论】:

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


    【解决方案1】:

    为了记录,我发现了我的错误是什么。默认情况下,通过 IIS 管理控制台添加的将“IP 地址:”设置为 All Unassigned 的站点绑定将获得此绑定字符串:

    "*:80:some.domain.com"

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

    ":80:some.domain.com" //注意缺少的通配符

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      相关资源
      最近更新 更多