System.DirectoryServices.DirectorySearcher造成“算术运算导

2019-06-23 21:26发布

我得到与使用查询AD以下间歇性错误DirectorySearcher.FindOne()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()

这是在web应用中发生的,似乎应用程序已经运行了几个小时后发生。

这是一个记录的问题上微软连接,但它看起来像它已被标记为“不可重复性”和关闭。

我发现唯一的解决方法在这里是要定期回收应用程序池这是一个相当严厉的解决办法,而不是可行的,当你的用户是在工作的中间。

有没有人经历过这个,如果是这怎么解决?

我曾尝试使用缓存,但这只是推迟了不可避免的,直到你打在AD的呼叫数量方面有一定的阈值,因为人报告说,每个API调用时就出现内存泄漏 。

任何帮助将非常感激。

Answer 1:

制作广告API,并在它自己的应用程序池运行它。 循环每隔几个小时这一点。 所有API将处理是AD电话。 看起来你已经拥有的代码,只需要移动到API。 我已经找到了AD API成为许多其他项目非常有用的和不断返回到它作为参考点。



文章来源: System.DirectoryServices.DirectorySearcher causing “Arithmetic operation resulted in overflow” errors