You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DirectorySearcher.FindAll抛出「Item has already been added. Key in dictionary: 'objectsid'」错误排查求助

DirectorySearcher.FindAll抛出「Item has already been added. Key in dictionary: 'objectsid'」错误排查求助

各位大佬好,想请教个最近棘手的问题:

我们有个基于.NET 4.0的WinForms应用,在不同机构的环境里稳定跑了8年多,一直没出过什么大问题。但最近半年里,陆续有来自不同机构的几个用户反馈同一个错误——调用DirectorySearcher.FindAll()的时候,会抛出**Item has already been added. Key in dictionary: 'objectsid'**的异常。

先贴一下相关的核心代码片段:

using (DirectorySearcher searcher = new DirectorySearcher(root))  
{      
    searcher.PageSize = 1000;      
    searcher.PropertiesToLoad.AddRange(new string[] { "whenCreated", "whenChanged", "cn", "description", "objectsid" });
    // 其他搜索条件配置...
    using (SearchResultCollection results = searcher.FindAll())
    {
        // 遍历处理搜索结果的逻辑
        foreach (SearchResult result in results)
        {
            // 读取AD对象属性的操作...
        }
    }
}

目前我们自己排查过的几个方向:

  • 代码本身已经稳定运行多年,99%的用户都正常,基本排除是代码逻辑的普遍问题
  • 询问了出问题的用户,他们的AD环境近期没有做过大规模架构变更,日常使用也正常
  • 尝试让用户缩小搜索范围,或者只加载少量核心属性,偶尔还是会触发这个错误
  • 初步检查了用户AD中疑似的对象,暂时没发现objectsid属性重复的条目

实在是摸不着头绪了,有没有遇到过类似问题的朋友?或者能给些新的排查思路?比如是不是AD服务器的某些隐性数据异常?或者.NET 4.0在特定环境下的兼容性bug?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:43:20