Я получаю следующие прерывистые ошибки, связанные с запросом 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()
Это происходит в веб-приложении и, похоже, происходит после того, как приложение работает в течение нескольких часов.
Это документированная проблема в Microsoft Connect, но похоже, что она была отмечена как "не воспроизводимая" и закрыта.
Единственное исправление, которое я нашел здесь, заключается в том, чтобы периодически перезапускать пул приложений, что является довольно суровым обходным решением и не является жизнеспособным, когда ваши пользователи в середине работы.
Кто-нибудь испытал это, и если да, то как это было разрешено?
Я пытаюсь использовать кеширование, но это просто задерживает неизбежное, пока вы не нажмете определенный порог с точки зрения количества вызовов AD, поскольку люди сообщали, что каждый раз, когда вызов API делает его утечка памяти.
Любая помощь будет высоко оценена.