ActiveDirectoryMembershipProvider "С указанным доменом или сервером невозможно связаться" ПОСЛЕ перехода на Comcast
Моя компания недавно перешла от выделенного T-1 к широкополосному бизнес-соединению Comcast. Сразу после этого началась эта проблема.
Наши машины для разработки являются локальными, но наш сервер Active Directory (используемый для тестирования и подготовки продукта перед развертыванием) является экземпляром общедоступного облака, расположенным в Rackspace. Машины dev не подключены к домену.
Мы используем ActiveDirectoryMembershipProvider и аутентификацию на основе форм, а также запросы LDAP в самом приложении после завершения аутентификации.
Мы использовали эту конфигурацию в течение нескольких месяцев - никаких проблем.
После перехода на Comcast - кажется, что все работает правильно, кроме этого. Когда мы пытаемся запустить приложение локально, мы получаем вышеуказанную ошибку.
Ошибка сервера в приложении "/Web.NEPA".--------------------------------------------------------------------------------
Ошибка конфигурации Описание: во время обработки файла конфигурации, необходимого для обслуживания этого запроса, произошла ошибка. Пожалуйста, просмотрите подробности конкретной ошибки ниже и измените файл конфигурации соответствующим образом.
Сообщение об ошибке Parser: с указанным доменом или сервером невозможно связаться.
Ошибка источника:
Строка 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>
--- Тестовая программа, которая работает правильно:
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 ответ
Я видел подобные проблемы раньше, и я думаю, что Comcast может быть источником вашей проблемы.
В Comcast есть "функция", которая называется Domain Helper, которая перехватывает запросы к недействительным доменным именам и вместо этого отображает страницу, которая предлагает альтернативы, показывает какую-то рекламу и т. Д. (В основном, она ломает DNS, чтобы заработать несколько долларов на рекламе).
Ваш запрос, вероятно, получает помехи от службы помощника по домену. Хотя обычно он не получает ответа из Интернета и возвращается к локальной сети, чтобы найти сервер, вместо этого он получает "действительный" ответ от Domain Helper. Конечно, ответ совсем не то, что ожидает ваш код, поэтому выдается исключение.
Существуют различные способы отключить помощника по доменам, но лучше всего позвонить им. Вы также можете попробовать поискать на http://dns-opt-out.comcast.net/ и http://dns.comcast.net/ дополнительные ресурсы для отладки.