.net memory-leaks active-directory directoryservices

.net - System.DirectoryServices.DirectorySearcher causando "Operación aritmética provocó un desbordamiento" de errores



memory-leaks active-directory (1)

Cree una API AD y ejecútela en su propio grupo de aplicaciones. El reciclaje que cada pocas horas. Todo lo que la API manejará son llamadas a AD. parece que ya tiene el código, solo necesita pasar a API. He encontrado que una AD API es muy útil para muchos otros proyectos y sigo volviendo a ella como punto de referencia.

Recibo los siguientes errores intermitentes relacionados con consultar AD usando DirectorySearcher.FindOne() o 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()

Esto está sucediendo en una aplicación web y parece suceder después de que la aplicación ha estado funcionando durante varias horas.

Este es un problema documentado en Microsoft Connect pero parece que se marcó como "no reproducible" y se cerró.

La única solución que encontré aquí es reciclar periódicamente el grupo de aplicaciones, que es una solución bastante dura y no viable cuando los usuarios están en pleno trabajo.

¿Alguien ha experimentado esto y, en caso afirmativo, cómo se resolvió esto?

He intentado usar el almacenamiento en caché, pero esto solo demora lo inevitable hasta que alcanzas un cierto umbral en cuanto a la cantidad de llamadas AD, ya que las personas han informado que cada vez que se realiza una llamada a la API se pierde la memoria .

Cualquier ayuda sería muy apreciada.