Я написал программу, которая берет список имен хостов и имя сайта и добавляет их в качестве привязок к сайту, если они еще не существуют ни на одном сайте. Программа написана на .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();