Я получаю следующие периодические ошибки, связанные с запросом 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, происходит утечка памяти .
Будем признательны за любую помощь.