System.DirectoryServices.DirectorySearcher вызывает ошибки «Арифметическая операция привела к переполнению»

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

Будем признательны за любую помощь.

23
задан Community 23 May 2017 в 12:16
поделиться