为什么作为域用户运行的ASP.NET应用程序在Active Directory出现问题后需要重新启动才能使用PrincipalContext?

为什么作为域用户运行的ASP.NET应用程序在Active Directory出现问题后需要重新启动才能使用PrincipalContext?,asp.net,application-pool,principalcontext,applicationpoolidentity,Asp.net,Application Pool,Principalcontext,Applicationpoolidentity,我有一个ASP.NET 4.5应用程序,它使用特定的域用户名和密码在应用程序池中运行。几个月来它一直运转良好。几天前,有一个Active Directory问题,其详细信息我仍然不知道,但我的应用程序用户在问题发生时报告说,他们无法使用该应用程序 广告问题最终得到了解决,但用户仍然无法使用该应用程序——直到我回收了应用程序池 在回收之前,我抓住了这个第一次机会的例外: System.Runtime.InteropServices.COMException (0x8007052E): The us

我有一个ASP.NET 4.5应用程序,它使用特定的域用户名和密码在应用程序池中运行。几个月来它一直运转良好。几天前,有一个Active Directory问题,其详细信息我仍然不知道,但我的应用程序用户在问题发生时报告说,他们无法使用该应用程序

广告问题最终得到了解决,但用户仍然无法使用该应用程序——直到我回收了应用程序池

在回收之前,我抓住了这个第一次机会的例外:

System.Runtime.InteropServices.COMException (0x8007052E): The user name or password is incorrect.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
回收之后,我不再看到这个异常

异常本身是由对PrincipalContext.FindByIdentity的调用生成的,该调用在我回收应用程序池之前一直失败


如果应用程序池凭据没有更改,应用程序池回收究竟为什么会更改PrincipalContext的行为?

使用域帐户的应用程序池与AD域控制器一起验证域用户

因为我们不知道你们公司的广告发生了什么,所以我们不能确定为什么。我们只能假设或推测,它似乎导致了这一错误

重新设置池后,广告很高兴再次重置这个魔术。魔术-就像我不知道的秘密机制一样,但应用程序池依靠广告来验证域用户

您默认的应用程序池回收时间为29小时,最终也会将其修复。这是你自己做的