我无法解决一个问题,其中ASP.NET 4应用程序在尝试不时获取给定用户的用户组时失败。与此应用程序关联的应用程序池设置为在ApplicationPoolIdentity下运行。
异常信息
System.DirectoryServices.DirectoryServicesCOMException
HRESULT: 80072020
Message: An operations error occurred.
Extended Message: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1
堆栈跟踪
System.DirectoryServices.DirectoryEntry.Bind(Boolean)
System.DirectoryServices.DirectoryEntry.Bind()
System.DirectoryServices.DirectoryEntry.get_AdsObject()
System.DirectoryServices.DirectorySearcher.FindAll(Boolean)
System.DirectoryServices.DirectorySearcher.FindOne()
在95%-99%的时间内,此功能运行良好,但有时会开始失败。当我将应用程序池更改为使用LocalSystem或NetworkService时,它开始工作。当我改回ApplicationPoolIdentity时,它再次开始失败。使站点再次与ApplicationPoolIdentity一起使用的唯一方法是重新引导服务器。
我能够找到类似的问题here,但解决方法也是重新启动。我想找到一个更永久的解决方案,而不需要更改应用程序池的标识。
最佳答案
重新启动可以暂时解决问题,但是Microsoft hotfix KB2545850可以永久修复该问题。