4

我在 C# .Net 4 中有一个简单的代码片段,在 System.DirectoryServices 中的 DirectorySearcher 上调用 .FindAll() 时随机给出访问冲突

该方法所做的只是找出用户是否已加载到 Active Directory 中并返回目录条目。

我在网上搜索过,可以在 SharePoint 博客和论坛中找到多次提到的异常,但没有来自普通的 C# .net 4 服务。

我的问题是我的服务是否会发生同样的访问违规,因此我需要相同的修补程序来解决我的问题吗?

修补程序: http ://social.technet.microsoft.com/forums/en-US/sharepointadmin/thread/4634f4f4-7857-4de3-9bc5-fcbb946bd8df

编码:

            deSearch.Filter = String.Format("(&(SAMAccountName={0}))", userName);

            using (SearchResultCollection results = deSearch.FindAll())
            {
                if (results.Count > 0)
                {
                    de = results[0].GetDirectoryEntry();
                    return de;
                }
                else
                    return null;
            }

例外:

System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。在 System.DirectoryServices.Interop.UnsafeNativeMethods.IntADsOpen.GetObject(String className, String relativeName) 在 System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName) 在 System.DirectoryServices.DirectoryEntries.Find(String name)

4

0 回答 0