我有相同的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方法:
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;
}发布于 2013-02-21 11:43:13
我有完全相同的错误,并通过将站点的应用程序池更改为在Network下运行来修复它。
在IIS中:
我希望这能帮到你。
发布于 2013-05-23 15:06:53
我知道这个话题已经过时了,但是对于那些想要解决这个问题的人来说,只要用这种方法来执行代码就可以了。
using (HostingEnvironment.Impersonate()) {
// This code runs as the application pool user
}发布于 2012-12-03 19:48:15
在本例中没有InnerException,它只是包装一个COM错误。
几乎可以肯定,这是因为您的应用程序池标识没有访问Active 的权限。
https://stackoverflow.com/questions/13688031
复制相似问题