我收到以下与使用
DirectorySearcher.FindOne()
或查询 AD 相关的间歇性错误FindAll()
。
System.OverflowException: Arithmetic operation resulted in an overflow.
at System.DirectoryServices.SearchResultCollection.ResultsEnumerator.GetCurrentResult()
at System.DirectoryServices.SearchResultCollection.ResultsEnumerator.get_Current()
at System.DirectoryServices.SearchResultCollection.ResultsEnumerator.System.Collections.IEnumerator.get_Current()
这发生在网络应用程序中,并且似乎在应用程序运行几个小时后发生。
这是Microsoft Connect 上记录的问题,但看起来它已被标记为“不可重现”并已关闭。
我在这里找到的唯一解决方法是定期回收应用程序池,这是一种相当苛刻的解决方法,并且当您的用户正在工作时不可行。
有没有人经历过这种情况,如果有,这是如何解决的?
我曾尝试使用缓存,但这只会延迟不可避免的情况,直到您在 AD 调用数量方面达到某个阈值,因为人们报告说每次进行 API 调用时都会泄漏内存。
任何帮助将非常感激。