c# - 使用 DirectorySearcher 的意外行为“服务器无法运行”
问题描述
尝试通过 LDAP 查询组时,我在使用 DirectorySearcher 类时遇到了一个非常奇怪的问题。
using(var directoryEntry = new DirectoryEntry(thePath,theUserName,ThePassword)
{
var ONLY_GROUPS = "(objectClass=group)"
var filter = string.format("(&{0}({1}=*{2}*))",ONLY_GROUPS,"Name","theGroupName");
using(var searcher = new DirectorySearcher(directoryEntry,filter))
{
...
searcher.FindAll();
...
}
在某些情况下,在我们的生产代码中调用 FindAll 函数时,一些客户会收到 ComException“服务器无法运行”。这意味着试图连接到 LDAP 服务器的机器与它没有连接。
但作为我们代码流的一部分,我们在同一个 LDAP 上调用不同的查询来检索域控制器,这总是有效的。当调用用于检索组的 LDAP 查询时,我们得到 ComException。
另一个笔记
我们有 C++ 代码,可以通过相同的 LDAP 运行组查询。
此外,我创建了一个运行相同生产代码的可执行文件,它适用于失败的客户(所以我想我们已经排除了这是连接问题的选项)
我的想法什么时候会导致这个问题。
解决方案
想添加有关此问题的另一个重要更新。似乎第一次尝试运行 ldap 查询有效!.
意思是在 iisrest 之后,ldap 组查询工作,但然后我等待 120 秒,事情停止工作,ldap 查询在另一个 iisrest 之后卡在绑定阶段/手,再次 ldap 组工作,等待 120 秒相同的结果
推荐阅读
- swift - AVAudioPlayer 间歇启动延迟
- vuex - 即使对于相同的值也可以观察存储突变
- javascript - 为什么 JavaScript map.has 方法不适用于数组?
- python - 重采样 CSV 中的时间戳
- java - springboot中应用程序运行失败不满足的依赖关系
- java - Micronaut:如何映射 HashMap 中的所有属性值?
- python - 错误:TypeError:传递给参数“输入”的值的 DataType uint8 不在允许值列表中:float16、bfloat16、float32、float64、int32
- python - 仅根据数据框中的 groupby 数据绘制表?
- r - 显示“ROI 中的错误:L_constraint.........”时的错误是什么?
- jira - 在 Jira Cloud App sprint_started webhook 中获取空项目密钥