Я пытаюсь выполнить привязку к серверу Active Directory на C#, но на месте у меня возникли проблемы, не воспроизводимые в тестовой среде.
Я получаю исключение
System.Runtime.InteropServices.COMException (0x8007203A): The server is not operational.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.RefreshCache()
at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
at System.DirectoryServices.DirectoryEntry.get_NativeGuid()
код выглядит так
// domainStr = "LDAP://domainname/rootDSE
using (var de = new DirectoryEntry(domainStr, Username, Password))
{
var guid = de.NativeGuid;
}
однако, если я вместо этого попытаюсь подключить контроллер домена (domainStr = "LDAP://domainController/rootDSE" или полностью квалифицированный domainStr = "LDAP://domainController.DomainName"), он будет работать нормально.
Я старался
var d = Domain.GetDomain(new DirectoryContext(
DirectoryContextType.Domain,
domainStr,
Username,
Password));
но при этом я получаю точно такое же исключение.
Мне интересно, делаю ли я что-то не так, может быть, другой URL-адрес LDAP будет работать лучше, или это обычная проблема, с которой я сталкиваюсь (хотя поиск в Google поднимает эту проблему, я не нашел решение, которое работает для меня )
Также, возможно, стоит указать, что сервер, на котором работает программное обеспечение, не находится ни в одной Active Directory, и у меня есть список AD, к которым я подключаюсь (отсюда имя пользователя и пароль при попытке подключения)
LDAP://RootDSE- он вам подходит?? - person marc_s   schedule 21.03.2011LDAP://RootDSE). Однако я использовал имя пользователя и пароль при попытке подключения, но все равно получаю вышеуказанное исключение, если я явно не укажу контроллер домена. - person clows   schedule 21.03.2011