c# sql-server wcf memory-leaks msmq

c# - ¿Cómo investigar fugas de memoria no administradas en.NET?



sql-server wcf (4)

Tengo un servicio WCF corriendo sobre MSMQ. La memoria aumenta gradualmente con el tiempo, lo que indica que hay algún tipo de pérdida de memoria. Ejecuté el servicio localmente y supervisé algunos contadores usando PerfMon. Los bytes de montón gestionados de la memoria CLR total permanecen relativamente constantes, mientras que los bytes privados del proceso aumentan con el tiempo. Esto me lleva a creer que hay algún tipo de pérdida de memoria no administrada. Asumiendo que la fuga de memoria no administrada es el problema, ¿cómo abordo el problema? ¿Hay alguna herramienta que pueda utilizar para darme pistas sobre qué está causando la fuga de memoria no administrada? Además, todo lo que mi servicio está haciendo es leer desde la cola transaccional y escribir en una base de datos, todo como parte de una transacción DTC (manejada bajo el capó al requerir una transacción en el contrato de servicio). No estoy haciendo nada explícitamente con COM o DllImports.

¡Gracias por adelantado!


Asegúrese de cerrar el cliente de servicio después de usarlo. algo como

try { ... do work ... Close(); } ... exception handling ... { Abort(); }




Hormigas Profiler vale la pena considerarlo. Por lo que puedo recordar, puedes descargar una versión de prueba.