我在 C# .Net 4 中有一个简单的代码片段,在 System.DirectoryServices 中的 DirectorySearcher 上调用 .FindAll() 时随机给出访问冲突
该方法所做的只是找出用户是否已加载到 Active Directory 中并返回目录条目。
我在网上搜索过,可以在 SharePoint 博客和论坛中找到多次提到的异常,但没有来自普通的 C# .net 4 服务。
我的问题是我的服务是否会发生同样的访问违规,因此我需要相同的修补程序来解决我的问题吗?
编码:
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)