我有相同的网络应用程序在其他三台服务器上运行。有人知道为什么第四台服务器无法工作吗?查看错误和堆栈跟踪:
发生操作错误。
描述:执行期间发生未处理的异常。
当前的网络请求。请查看堆栈跟踪以了解更多信息
有关错误及其在代码中的来源的信息。
异常详细信息:
System.DirectoryServices.DirectoryServicesCOMException:一个操作
发生了错误。
来源错误:
执行期间产生未处理的异常
当前的网络请求。有关原产地和地点的信息
可以使用下面的异常堆栈跟踪来识别异常。
堆栈跟踪:
[DirectoryServicesCOMException (0x80072020): 操作错误
发生。 ] System.DirectoryServices.DirectoryEntry.Bind(布尔值
throwIfFail) +454 System.DirectoryServices.DirectoryEntry.Bind()
+36 System.DirectoryServices.DirectoryEntry.get_AdsObject() +31 System.DirectoryServices.PropertyValueCollection.PopulateList() +22
System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry
条目,字符串属性名称)+96
System.DirectoryServices.PropertyCollection.get_Item(字符串
财产名称)+142
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
上下文,类型principalType,Nullable'1 身份类型,字符串
身份值、日期时间(参考日期)+14
System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType(PrincipalContext
上下文,类型主体类型,字符串标识值)+73
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext
上下文,字符串标识值)+25
Infraero.TINE3.STTEnterprise.Web.Common.Seguranca.ServicoAutenticacao.EfetuarLogin(AcessoUsuario
acessoUsuario,字符串 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(字符串
matricula、String senha、AcessoUsuario acessoUsuario) in
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(字符串
matricula、String senha)中
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
登录视图模型)中
D:\SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Controllers\LoginController.cs:54
lambda_method(闭包,ControllerBase,对象[])+108
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase
控制器,对象[]参数)+17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
controllerContext, IDictionary'2 参数) +208
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
控制器上下文,动作描述符动作描述符,IDictionary'2
参数)+27
System.Web.Mvc.c__DisplayClass15.b__12()
+55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
过滤器、ActionExecutingContext preContext、Func'1 延续)+263
System.Web.Mvc.c__DisplayClass17.b__14()
+19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext
controllerContext、IList'1 过滤器、ActionDescriptor actionDescriptor、
IDictionary`2个参数)+191
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
控制器上下文,字符串操作名称)+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
请求上下文)+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
System.Web.Mvc.SecurityUtil.b__0(操作 f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(操作操作)
+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 步骤,布尔值&同步完成) +184
Efetuar登录方法:
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;
}
我遇到了完全相同的错误,并通过将站点的应用程序池更改为在网络服务下运行来修复它。
In IIS:
- 选择您网站的应用程序池
- 选择右侧的高级设置
- 在“高级设置”弹出窗口中,向下滚动到“流程模型”组
- 将名为 Identity 的第一个选项更改为 NetworkService(我的选项设置为默认的 ApplicationPoolIdentity)。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)