对 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(Boolean throwIfFail) +781
System.DirectoryServices.DirectoryEntry.Bind() +44
System.DirectoryServices.DirectoryEntry.get_AdsObject() +42
System.DirectoryServices .PropertyValueCollection.PopulateList() +29
System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) +119
System.DirectoryServices.PropertyCollection.get_Item(String 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,可空2 个参数)+248 系统。 Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 1 续) +640 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 2 参数) +312 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext控制器上下文,字符串动作名称)+6911 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, IDictionary2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func1 filters, ActionDescriptor actionDescriptor, IDictionary
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 step, Boolean& completedSynchronously) +375
很好,这是我的第一个问题!