System.DirectoryServices.DirectoryServicesCOMException

时间:2012-05-22 20:42:30

标签: asp.net

尝试使用“匿名”身份验证和硬编码用户名在生产环境中运行应用程序时,我一直收到以下错误。

当我打开基本身份验证,然后提示用户名/密码时,一切都像魅力一样。但我需要让硬编码版本也能正常工作。无法弄清楚最新情况。

一切都在另一台服务器上完美运行。

  

异常详细信息:System.DirectoryServices.DirectoryServicesCOMException:一个操作   发生了错误。

     

来源错误:

     

在执行当前Web请求期间生成了未处理的异常。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

     

堆栈追踪:

     

[DirectoryServicesCOMException(0x80072020):发生操作错误。]
  System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)+781
  System.DirectoryServices.DirectoryEntry.Bind()+44
  System.DirectoryServices.DirectoryEntry.get_SchemaEntry()+49
  System.DirectoryServices.AccountManagement.ADStoreCtx.IsContainer(的DirectoryEntry   de)+62
  System.DirectoryServices.AccountManagement.ADStoreCtx..ctor(的DirectoryEntry   ctxBase,Boolean ownCtxBase,String username,String password,   ContextOptions选项)+123
  System.DirectoryServices.AccountManagement.PrincipalContext.CreateContextFromDirectoryEntry(的DirectoryEntry   入口)+234
  System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit()   +497

     

[PrincipalOperationException:发生操作错误。]
  System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit()   534256
  System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()   +61
  System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()   +141
  System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()   +42
  System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext   context,Type principalType,Nullable`1 identityType,String   identityValue,DateTime refDate)+27
  System.DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(PrincipalContext   context,String identityValue)+95
  SERT_BO.ADHelper.UserBelongsToGrp(String adGroup,String sAMAccountName,String& emailAddr,String& fullName)in   d:\ SERT \的BusinessObjects \ SERT_BO \ ADHelper.cs:199
  DERT中的SERT_BO.UserSession.GetUserSession(String userName):\ SERT \ BusinessObjects \ SERT_BO \ UserSession.cs:44
  DERT中的SERT.SetUserSession.Page_Load(Object sender,EventArgs e):SERT \ SERT \ SERT \ SetUserSession.aspx.cs:23
  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)+25
  System.Web.UI.Control.LoadRecursive()+71
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)   +3064

2 个答案:

答案 0 :(得分:1)

要检查的一件事是运行ASP.NET应用程序的AppPool具有正确的权限。作为快速测试,您可以将AppPool的身份设置为本地系统,看看是否可以解决问题。如果问题出现在此处,则可以将应用程序池标识设置为在此服务器上具有足够权限的(域?)用户。

答案 1 :(得分:0)

看起来问题是服务器正在查看错误的AD控制器。它必须完全写出来。