我正在尝试在 C# 中绑定到 Active Directory 服务器,但在现场我似乎在测试环境中遇到了无法重现的问题。
我得到一个例外
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));
但是这样做时我得到了完全相同的异常。
我想知道我是否做错了什么,也许不同的 LDAP URL 会更好,或者这是我遇到的常见问题(即使谷歌搜索提出了这个问题,我还没有找到适合我的解决方案)
另外可能值得指出的是,运行该软件的服务器不在任何 Active Directory 中,并且我有一个我连接到的 AD 列表(因此尝试连接时的用户名和密码)