我有一个 ASP.NET 4.5 应用程序,它在具有特定域用户名和密码的应用程序池中运行。几个月来一直运行良好。几天前,有一个 Active Directory 问题,我仍然不知道其详细信息,但我的应用程序用户在问题发生时报告说他们无法使用该应用程序。
AD 问题最终得到了“解决”,但用户仍然无法使用该应用程序——直到我回收了应用程序池。
在回收之前,我遇到了这个第一次机会异常:
System.Runtime.InteropServices.COMException (0x8007052E): The user name or password is incorrect.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
回收后,我不再看到此异常。
异常本身是由调用生成的PrincipalContext.FindByIdentity
,直到我回收了应用程序池。
PrincipalContext
如果应用程序池凭据没有更改,为什么应用程序池回收会改变行为?