0

Nous avons migré l'application asp.net depuis .net framework 3.5, iis 7.0, Windows Server 2008 R2 vers .net framework 3.5, iis 8.5, Windows server 2012 AD ne fonctionne pas correctement. Une fois le pool d'applications recyclé, l'application fonctionne après un certain temps, elle ne fonctionne plus.System.DirectoryServices.DirectorySearcher provoquant des erreurs de type "Opération arithmétique entraînant un débordement"

Je reçois les erreurs intermittentes suivantes liées à l'interrogation AD à l'aide DirectorySearcher.FindOne() ou FindAll().

System.DirectoryServices.DirectorySearcher causant « l'opération arithmétique a donné lieu à débordement » erreurs

System.OverflowException: opération arithmétique a donné lieu à un trop-plein. à System.DirectoryServices.SearchResultCollection.ResultsEnumerator.GetCurrentResult() à System.DirectoryServices.SearchResultCollection.ResultsEnumerator.get_Current() à System.DirectoryServices.SearchResultCollection.ResultsEnumerator.System.Collections.IEnumerator.get_Current()

Répondre

0

Semble , comme le même problème que décrit ici:

System.DirectoryServices.DirectorySearcher causing "Arithmetic operation resulted in overflow" errors

Une solution consiste à recycler le pool d'applications plus fréquentes. L'autre (si vous avez accès au code source) est de remplacer DirectorySearcher.FindXXX méthodes avec des classes LDAP à partir de l'espace de noms System.DirectoryServices.Protocols (LdapConnection, SearchRequest, etc.)

+0

merci pour la réponse dmitry. –

+0

pouvez-vous expliquer comment je peux implémenter LdapConnection en utilisant System.DirectoryServices.Protocols au lieu de DirectorySearcher.Findone()? –

+0

Le lien suivant explique comment créer un moteur de recherche LDAP similaire à DirectorySearcher: http://dunnry.com/blog/2008/06/05/PagedAsynchronousLDAPSearchesRevisited.aspx. Vous pouvez changer le chercheur pour travailler de manière synchrone si nécessaire – oldovets