2011-06-02 43 views
3

我的症状和System.DirectoryServices.AccountManagement堆栈跟踪与While trying to retrieve the authorization groups, an error (5) occurred完全相同,只是出现错误110,其中docs解释为ERROR_OPEN_FAILED:系统无法打开指定的设备或文件。每个AuthzInitializeContextFromSid表示错误110是什么意思? “在尝试检索授权组时,发生了错误(110)。”

在我的情况下,这个功能工作了一天,并在ASP.NET v4应用程序的第二天停止工作。我正在使用我创建的AD服务帐户来建立与AD的连接。服务帐户具有管理员权限,可以进一步到目录中的特定OU。

我已经将异常缩小到对System.DirectoryServices.AccountManagement.AuthZSet构造函数中的AuthzInitializeContextFromSid原生函数的调用。我不清楚为什么这会失败,既然user.GetGroups为我工作(根据其他SO链接给出的答案),我现在就暂停研究。

其他人有什么想法可能会发生什么?

+0

C++与.NET问题有什么关系? – ildjarn 2011-06-02 17:26:34

+0

@ildjarn,他试图从用C#编写的ASP.NET Web应用程序中检索授权组。该错误源自一些C++代码(在Reflector中找到)。 – retrodrone 2011-06-02 17:28:28

+0

这是一个引发错误的win32函数。 #include Jason 2011-06-02 17:28:57

回答

2

错误5通常表示您有ERROR_ACCESS_DENIED win32 error。如果您访问的只能使用管理权限查询的低级API,或者您正在访问的对象具有拒绝访问您的程序运行的进程令牌的ACL,则会发生这种情况。

简而言之:尝试运行您的应用程序提升。如果运行正常,则在没有提升的情况下运行时,您的访问权限不足

+0

其实,我得到一个错误110.奇怪的是,大部分时间它的工作。只有偶尔会有110失败;当它失败时,重新启动修复它。另外,不知道如何在asp.net应用程序中运行提升运行?已经完全信任。 – Jason 2011-10-27 19:58:17

+0

在我的情况下,当两个asp.net应用程序使用相同的应用程序池帐户运行并且都调用System.DirectoryServices.AccountManagement.AuthZSet时,会发生这种情况。我认为这与nt安全性有关,因为只有通过使用相同帐户的Windows设备才能建立到AD的单个连接。 – JimSTAT 2016-08-03 19:36:50