ActiveDirectoryMembershipProvider «С указанным доменом или сервером невозможно связаться» ПОСЛЕ перехода на Comcast - PullRequest
4 голосов
/ 17 ноября 2010

Моя компания недавно перешла от выделенного T-1 к широкополосному бизнес-соединению Comcast.Сразу после этого началась эта проблема.

Наши машины для разработки являются локальными, но наш сервер Active Directory (используемый для тестирования и подготовки продукта перед развертыванием) является экземпляром общедоступного облака, расположенным в Rackspace.Машины dev не подключены к домену.

Мы используем ActiveDirectoryMembershipProvider и аутентификацию на основе форм, а также запросы LDAP внутри самого приложения после завершения аутентификации.

Мы былиИспользование этой конфигурации в течение нескольких месяцев - без проблем.

После перехода на Comcast - кажется, что все работает правильно, кроме этого.Когда мы пытаемся запустить приложение локально, мы получаем указанную выше ошибку.

Ошибка сервера в приложении '/Web.NEPA'.
--------------------------------------------------------------------------------

Ошибка конфигурации Описание: ошибкапроизошла во время обработки файла конфигурации, необходимого для обслуживания этого запроса.Пожалуйста, просмотрите подробности конкретной ошибки ниже и измените файл конфигурации соответствующим образом.

Сообщение об ошибке синтаксического анализатора: не удалось связаться с указанным доменом или сервером.

Ошибка источника:

Строка 4: Строка 5: Строка 7: connectionStringName = "LdapService" Строка8: attributeMapUsername = "SAMAccountName"

Исходный файл: C: \ dev \ EMSolution \ branch \ 3.4.0.0 \ Web.NEPA \ App_Config \ Testing \ 3.4.0.0 \ NEPAARNG \ System.Web.Membership.configСтрока: 6

-------------------------------------------------------------------------------- Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.4952;ASP.NET версия: 2.0.50727.4955

Я убедился, что это не проблема с брандмауэром на стороне Rackspace (полностью отключив его и попытавшись установить соединение).Я также создал тестовую программу для запуска запроса LDAP к нашему экземпляру AD - который отлично работает.

--- вот некоторые из упомянутых элементов:

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">  
   <providers>  
      <add name="AspNetActiveDirectoryMembershipProvider"
     type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"         
     connectionStringName="LdapService"
     attributeMapUsername="SAMAccountName"
     connectionUsername="DEV1\emsutil"
     connectionPassword="*****"
     connectionProtection="None"
     requiresQuestionAndAnswer="false"
     minRequiredPasswordLength="4"
     minRequiredNonalphanumericCharacters="0"
     enableSearchMethods="true"/>  
  </providers>  
</membership>  

<connectionStrings>
    <add name="LdapService" connectionString="LDAP://cloud1.dev1/DC=dev1" />
</connectionStrings>

--- Testпрограмма, которая работает правильно:

using System;
using System.DirectoryServices;

namespace ldaptest
{
internal class Program
{
    private static void Main(string[] args)
    {
        DirectoryEntry de = new DirectoryEntry();
        de.Path = "LDAP://cloud1.dev1/DC=dev1";
        de.Username = "emsutil@dev1";
        de.Password = "*****";

        DirectorySearcher srch = new DirectorySearcher(de);
        srch.Filter = "(objectClass=user)";

        using (SearchResultCollection results = srch.FindAll())
        {
            foreach (SearchResult res in results)
            {
                Console.WriteLine("\t{0}", res.Path);
            }
        }

        Console.ReadKey();
    }
}
}

1 Ответ

1 голос
/ 15 февраля 2011

Я уже сталкивался с подобными проблемами раньше, и я думаю, что Comcast может быть источником вашей проблемы.

В Comcast есть «функция» под названием Domain Helper, которая перехватывает запросы к недействительным доменным именам и вместо этого обслуживаетстраница, которая предлагает альтернативы, показывает некоторую рекламу и т. д. (По сути, она ломает DNS, чтобы заработать на рекламе несколько долларов.)

Ваш запрос, вероятно, получает помехи от службы помощника по доменам.Хотя обычно он не получает ответа из Интернета и возвращается к локальной сети, чтобы найти сервер, вместо этого он получает «действительный» ответ от Domain Helper.Конечно, ответ совсем не то, что ожидает ваш код, поэтому возникает исключение.

Существуют различные способы отключить помощник по домену, но лучше всего их вызвать.Вы также можете попробовать поискать http://dns -opt-out.comcast.net / и http://dns.comcast.net/ для дальнейшей отладки ресурсов.

...