Vin*_*oni 41 .net iis directoryservices active-directory
我在其他三台服务器上使用相同的Web应用程序.任何人都知道为什么不在第四台服务器上工作?查看错误和堆栈跟踪:
发生了操作错误.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:
System.DirectoryServices.DirectoryServicesCOMException:发生操作错误.来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[DirectoryServicesCOMException(0x80072020):发生操作错误.] System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)+454 System.DirectoryServices.DirectoryEntry.Bind()+36 System.DirectoryServices.DirectoryEntry.get_AdsObject()+31 System.DirectoryServices.PropertyValueCollection.PopulateList()+22
System.DirectoryServices .PropertyValueCollection..ctor(DirectoryEntry entry,String propertyName)+96
System.DirectoryServices.PropertyCollection.get_Item(String propertyName)+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 context,Type principalType,Nullable'1 identityType, String identityValue,DateTime refDate)+14
System.DirectoryServices.AccountMan agement.Principal.FindByIdentityWithType(PrincipalContext context,Type principalType,String identityValue)+73
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context,String 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,AcessoUsuario acessoUsuario)在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 matricula,String senha)在D:\ SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Controllers\LoginController.cs: 80 Infraero.TINE3.D:\ SVN\STT\trunk\4-0_CodigoFonte_Enterprise\4-4_SRC\Infraero.TINE3.STTEnterprise.Web\Controllers\LoginController.cs中的STTEnterprise.Web.Controllers.LoginController.Index(LoginViewModel loginViewModel):54 lambda_method(Closure, ControllerBase,Object [])+ 108
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object [] parameters)+17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary'2 parameters)+208
System. Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary'2 parameters)+27
System.Web.Mvc.<> c__DisplayClass15.b__12()+55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter,ActionExecutingContext preContext,Func'1 continuation)+263
System.Web.Mvc.<> c__DisplayClass17.b__14()+19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList'1过滤器,ActionDescriptor actionDescriptor,IDictionary`2 parameters)+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
System.Web.Mvc.SecurityUtil.b__0(Action 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 result)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpA pplication.IExecutionStep.Execute()+8963149 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&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;
}
Run Code Online (Sandbox Code Playgroud)
Nev*_*lle 66
我有完全相同的错误,并通过更改站点的应用程序池在网络服务下运行来修复它.
在IIS中:
我希望这有帮助.
小智 35
我知道这个主题已经过时,但仅适用于未来寻找此问题的人只需使用此方法执行具有Elevate权限的代码
using (HostingEnvironment.Impersonate()) {
// This code runs as the application pool user
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,在应用程序池中从ApplicationPoolItentity切换到NetworkService确实有效,但它不是首选"因为作为网络服务运行的服务可以通过以下链接篡改在同一身份下运行的其他服务":(http:// www. iis.net/learn/manage/configuring-security/application-pool-identities).
我在服务器上运行了修补程序(KB2545850)并根据此答案重新启动:( DirectoryServicesCOMException 80072020来自IIS 7.5在ApplicationPoolIdentity下运行的站点)
它现在似乎运作良好.
我的任务背景:将Server 2003上的.net framework 2.0升级到Server 2008 R2上的.net framework 4.0.
| 归档时间: |
|
| 查看次数: |
63051 次 |
| 最近记录: |