IIS 7.0 против 7.5 Сайт Microsoft.Web.Administration.Site BindingCollection - PullRequest
5 голосов
/ 25 февраля 2011

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

7 голосов
/ 25 февраля 2011

Для записи я узнал, в чём была моя ошибка.По умолчанию привязки сайтов, добавленные через консоль управления IIS, для которых для параметра «IP-адрес:» установлено значение Все неназначенные , задана строка привязки:

"*: 80: some.domain.com"

Я использовал это в своем коде:

": 80: some.domain.com "// обратите внимание на отсутствующий подстановочный знак

Привязки работают, но все, чтобыла настроена с помощью менеджера, не были записаны как идентичные по моему запросу LINQ, так как я запрашивал версию без привязки к маске версии информации о привязке имени хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...