[英]UserPrincipal Object, Active Directory Query: DirectoryServicesCOMException
对System.DirectoryServices.DirectoryServicesCOMException的重复表示歉意:发生操作错误,但我无法发表评论,也没有答案。
这个问题的解决方案没有用。 发布错误:System.DirectoryServices.DirectoryServicesCOMException
我在Visual Studio 2010中有了一个带有Razor视图引擎的新ASP.NET MVC 3 Web应用程序项目。它是通过向主控制器添加两行代码以及向System.DirectoryServices.AccountManagement
参考添加的两行代码生成的。该项目。
这在我的本地PC上运行得很好,但是在我创建的Windows 2008 R2 IIS 7.5站点上出现错误。
该站点使用defaultAppPool
,它使用ApplicationPoolIdentity
。 根站点文件夹已被授予IUSR
和IIS AppPool\\DefaultAppPool
读取权限。
控制器中的两行代码是:
PrincipalContext context = new PrincipalContext(ContextType.Domain);
ViewBag.name = UserPrincipal.FindByIdentity(context, User.Identity.Name).DisplayName;
我得到的错误是:
System.DirectoryServices.DirectoryServicesCOMException:发生操作错误。
堆栈跟踪:
[DirectoryServicesCOMException(0x80072020):发生操作错误。
System.DirectoryServices.DirectoryEntry.Bind(布尔throwIfFail)+781
System.DirectoryServices.DirectoryEntry.Bind()+44
System.DirectoryServices.DirectoryEntry.get_AdsObject()+42
System.DirectoryServices.PropertyValueCollection.PopulateList()+29
System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry条目,字符串propertyName)+119
System.DirectoryServices.PropertyCollection.get_Item(字符串propertyName)+163
System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer()+535649
System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()+51
System.DirectoryServices.AccountManagement.PrincipalContext.Initialize()+141
System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()+42
System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext上下文,类型PrincipalType,可空1 identityType, String identityValue, DateTime refDate) +27
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95
ActiveDirectory.Controllers.HomeController.Index() in C:\\projects\\ActiveDirectory\\ActiveDirectory\\Controllers\\HomeController.cs:18
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary1 identityType, String identityValue, DateTime refDate) +27
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95
ActiveDirectory.Controllers.HomeController.Index() in C:\\projects\\ActiveDirectory\\ActiveDirectory\\Controllers\\HomeController.cs:18
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary1 identityType, String identityValue, DateTime refDate) +27
2参数)+248
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95
ActiveDirectory.Controllers.HomeController.Index() in C:\\projects\\ActiveDirectory\\ActiveDirectory\\Controllers\\HomeController.cs:18
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func2 parameters) +39
1延续)+640
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList1 filters, ActionDescriptor actionDescriptor, IDictionary
2参数)+312
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,字符串actionName)+691
System.Web.Mvc.Controller.ExecuteCore()+162
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)+305
System.Web.Mvc。<> c__DisplayClassb.b__5()+62
System.Web.Mvc.Async。<> c__DisplayClass1.b__0()+20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+469
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值并已完成同步)+375
很好,这是我的第一个问题!
这很可能是权限问题。 检查运行应用程序池的帐户是否具有执行这些Active Directory调用的权限。 如果是本地计算机帐户,则可能不会。
您可以在这里找到更多信息: http : //msdn.microsoft.com/zh-CN/library/ms180891(v=vs.80).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.