Une application C++ existante avec des problèmes de fuites de mémoire parfois notoires doit être appelée à partir d'une application Windows basée sur un serveur .Net. Les temps de collecte des ordures .Net ne sont pas déterminables et parfois l'objet C++ est détruit ou n'est pas détruit "à temps" produisant des résultats imprévisibles et s'écrasant généralement l'application web C#. Quelle est la meilleure façon de pousser les objets C++ sur la pile de récupération de place aussi souvent que possible, mais pas si souvent que de supprimer la référence .Net à l'objet COM. Gardez à l'esprit que les objets COM peuvent générer des sous-objets afin que le nombre de références .Net des objets COM puisse changer avec seulement un appel de fonction et pas nécessairement une instanciation. Au fur et à mesure que les fuites de mémoire se produisent et que les objets COM ne sont pas nettoyés, les performances se dégradent jusqu'à ce qu'il soit si lent que IIS se déclenche plusieurs fois sur lui-même, puis tombe en panne. Redémarrer IIS résout le problème jusqu'à la prochaine fois. Les redémarrages périodiques sont utiles, mais une journée chargée peut en être la cause pendant le jour ouvrable.Comment gérer les objets COM dans une application Web .Net
J'ai dû résoudre cela en utilisant .Net 1.1 il y a quelques années. Je me demandais si quelqu'un d'autre avait ma solution ou un meilleur. Ce n'est pas ASP.NET. C'est une DLL .Net.
Le résultat final n'était pas complètement satisfaisant et le serveur web se bloque tous les quelques mois.
J'ai tendance à être d'accord que c'est difficile ou impossible avec .Net 1.1, mais nous avons la possibilité de passer à .Net 2.0. Est-ce que c'est intrinsèquement meilleur ou y a-t-il de nouvelles fonctions qui pourraient aider? – ssorrrell