获取全局编录的PrincipalContext的连接服务器
本文关键字:PrincipalContext 服务器 连接 全局 获取 | 更新日期: 2023-09-27 18:01:12
我有一个方法CreateContextForGlobalCatalog
,它返回一个连接到全局编录的PrincipalServer:
PrincipalContext = new PrincipalContext(ContextType.Domain,
"forest.name:3268",
"dc=forest,dc=name",
ContextOptions.Negotiate,
userName, password);
注意:这是该方法的简化版本,通常名称和容器都是参数。
在这个上下文中,我循环访问数据库中的对象,以从ActiveDirectory中的全局目录中获取信息:
using (PrincipalContext principalContext = CreateContextForGlobalCatalog())
{
foreach (ADAccount adAccount in accounts){
Log.Debug("Connected server: " + principalContext.ConnectedServer);
// get some information from AD here ...
}
}
Log.Debug
行记录PrincipalContext中连接的服务器。我有一个只包含虚拟机的测试设置。
我的问题:当我现在断开连接的服务器(禁用网络适配器(时,我不会出现异常并连接到新服务器,但日志消息仍然显示原始连接的服务器,尽管服务器不再可用。
有没有办法以某种方式刷新连接的服务器属性或从其他地方获取信息?
不幸的是,它在启动后永远不会更新,你能做的唯一解决办法是在每次迭代中重新检查你是否仍然连接
最简单的解决方案可能是尝试使用ping远程服务器。Net的Ping类。