Une nouvelle application qui a été développée utilise beaucoup de services Web. Nous avons régulièrement commencé à utiliser des exceptions de mémoire insuffisante (à mesure que l'utilisation augmentait). En examinant les vidages de la mémoire, j'ai remarqué qu'il y avait un grand nombre d'octets de même taille []. En regardant les poignées pour ces octets [] j'ai remarqué qu'ils ont été référencés par System.Security.Policy.EvidenceSystem.Security.Policy.Evidence, Web Services et souffler le LoH
Après un examen plus approfondi, j'ai identifié ces allocations de mémoire comme les assemblées réelles (dll) qui avaient nos classes de service Web dans les (2 des assemblées en particulier étaient en mémoire 128 fois et 115 fois). J'ai trouvé quelques informations ici -> blogs.msdn.com/tess/archive/2008/06/25/asp-net-memory-leak-byte-arrays-rooted-in-system-security-policy-evidence. ASPX
et ici -> blogs.javista.com/2009/03/18/best-practices-for-crm-memory-usage/
mais je ne l'ai pas pu trouver beaucoup d'autres références à ce problème. (Framework .NET chargeant l'assembly webservice en mémoire pour vérifier les politiques de sécurité).
Actuellement, une des seules solutions que je vois est de séparer les asseblies des webservices dans des assemblages plus petits qui font référence aux bibliothèques. Je suis confus pourquoi le framework .NET doit charger l'ensemble de l'assembly en mémoire pour vérifier les politiques et a voulu voir si quelqu'un d'autre a rencontré ceci et quelles étaient vos solutions.
Merci, Dan