首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.DirectoryServices.DirectoryServicesCOMException:发生操作错误

System.DirectoryServices.DirectoryServicesCOMException:发生操作错误
EN

Stack Overflow用户
提问于 2012-12-03 16:56:39
回答 7查看 76.8K关注 0票数 44

我有相同的web应用程序在其他三台服务器上工作。有人知道为什么第四服务器不工作吗?请参阅错误和堆栈跟踪:

发生了操作错误。 描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。 例外细节: System.DirectoryServices.DirectoryServicesCOMException:发生操作错误。 源错误: 在执行当前web请求期间生成一个未处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来标识。 堆栈跟踪: DirectoryServicesCOMException (0x80072020):发生了操作错误。+454 System.DirectoryServices.DirectoryEntry.Bind() +36 System.DirectoryServices.DirectoryEntry.get_AdsObject() +31 System.DirectoryServices.PropertyValueCollection.PopulateList() +22 System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry条目,字符串propertyName) +96 +142 System.DirectoryServices.PropertyCollection.get_Item(String System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer() +1134 System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit() +37 System.DirectoryServices.AccountManagement.PrincipalContext.Initialize() +124 System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx() +31 System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context,Type principalType,Nullable'1 identityType,String identityValue,DateTime refDate) +14 System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext上下文,类型principalType,字符串identityValue) +73 System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext上下文,字符串identityValue) +25 Infraero.TINE3.STTEnterprise.Web.Common.Seguranca.ServicoAutenticacao.EfetuarLogin(AcessoUsuario acessoUsuario,String senha) ( D:\SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Common\Seguranca\ServicoAutenticacao.cs:34 Infraero.TINE3.STTEnterprise.Web.Controllers.LoginController.ValidarUsuarioAD(String matricula,String senha,D:\SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Controllers\LoginController.cs:92 Infraero.TINE3.STTEnterprise.Web.Controllers.LoginController.ValidarUsuario(String AcessoUsuario (AcessoUsuario acessoUsuario)( D:\SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Controllers\LoginController.cs:80 Infraero.TINE3.STTEnterprise.Web.Controllers.LoginController.Index(LoginViewModel loginViewModel中的String senha) )在D:\SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Controllers\LoginController.cs:54 lambda_method(闭包,ControllerBase,Object[] )中+108 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase控制器,Object[]参数) +17 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary'2参数) +208 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary'2参数) +27 +55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter过滤器,ActionExecutingContext preContext,Func'1延续) +263 +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList'1过滤器,ActionDescriptor actionDescriptor,IDictionary2参数) +191 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName) +343 System.Web.Mvc.Controller.ExecuteCore() +116 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 System.Web.Mvc.<>c__DisplayClassb.b__5() +37 System.Web.Mvc.Async.<>c__DisplayClass1.b__0() +21 System.Web.Mvc.Async.<>c__DisplayClass8'1.b__7(IAsyncResult _) +12 System.Web.Mvc.Async.WrappedAsyncResult'1.End() +62 System.Web.Mvc.<>c__DisplayClasse.b__d() +50 (行动f) +7 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action +22 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult结果) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8963149 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,布尔& completedSynchronously) +184号

EfetuarLogin方法:

代码语言:javascript
复制
public static bool EfetuarLogin(User user, string password)
{
    bool isValid = false;

    if (user != null)
    {
        PrincipalContext context = new PrincipalContext(ContextType.Domain);

        using (context)
        {
            isValid = context.ValidateCredentials(user.Login, password);

            if (isValid)
            {
                UserPrincipal userAD = UserPrincipal.FindByIdentity(context, user.Login);

                MySession.CurrentUser = new MyUserSession()
                {
                    Id = user.Id,
                    ProfileId = user.ProfileId ,
                    Login = user.Login ,
                    Name = userAD.Name
                };
            }
        }
    }

    return isValid;
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-02-21 11:43:13

我有完全相同的错误,并通过将站点的应用程序池更改为在Network下运行来修复它。

在IIS中:

  • 选择站点的应用程序池
  • 选择右侧的高级设置
  • 在“高级设置”弹出窗口中,向下滚动到“流程模型”组。
  • 将第一个名为Identity的选项更改为NetworkService (我的选项设置为默认ApplicationPoolIdentity)。

我希望这能帮到你。

票数 69
EN

Stack Overflow用户

发布于 2013-05-23 15:06:53

我知道这个话题已经过时了,但是对于那些想要解决这个问题的人来说,只要用这种方法来执行代码就可以了。

代码语言:javascript
复制
using (HostingEnvironment.Impersonate()) {
    // This code runs as the application pool user
    }
票数 35
EN

Stack Overflow用户

发布于 2012-12-03 19:48:15

在本例中没有InnerException,它只是包装一个COM错误。

几乎可以肯定,这是因为您的应用程序池标识没有访问Active 的权限。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13688031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档