Heap problèmes de mémoire

Il existe un service auto-hébergé WCF qui doit fonctionner à 99% du temps. Parfois, nous avons des problèmes de mémoire comme celui-ci:

fuites de mémoire

Mais le service fonctionne comme d’habitude après ces problèmes. Comment pouvons-nous gérer cela? Tous les conseils et points pour créer des services robustes qui survivront dans des situations différentes sont très bienvenus.

S’il s’agit d’un problème WCF (je ne sais pas quoi faire avec votre vidage), je vous suggère d’activer le traçage côté serveur WCF et d’examiner les exceptions éventuelles (et de modifier votre question afin de pouvoir vous aider davantage vous).

Voici un lien qui explique comment faire cela:

Comment activer le traçage WCF

Quels sont vos comportements de service, en particulier ConcurrencyMode et InstanceContextMode.

Si vous avez défini Multiple comme ConcurrencyMode et InstanceContext sur (PerCall ou PerSession (valeur par défaut)), vous pouvez certainement rencontrer des problèmes si vous disposez de grandes DataStructures ou de ressources non exposées.

si vous utilisez plusieurs access simultanés, essayez InstanceContextMode Single [ServiceBehavior (ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]

Êtes-vous à 100% aucune de vos dépendances n’a de code non géré? J’ai vu quelque chose de très similaire se produire, et c’était parce que nous étions en train de désallouer de la mémoire, processus qu’un autre processus essaierait également de désallouer plus tard.