Tengo un proceso que aloja un WCF ServiceHost. Se filtra maneja como loco de acuerdo con ProcessExplorer. Revisé el código y no puedo encontrar nada obvio que esté causando los identificadores filtrados.¿Cómo puedo diagnosticar una fuga de la manija?
Lo más parecido que puedo encontrar es la lista de identificadores proporcionados por ProcessExplorer, pero la utilidad de eso parece limitada. ¿Hay alguna otra herramienta para ayudar a diagnosticar de dónde vino un identificador, como a través de un seguimiento de pila o algo así?
EDITAR
Tengo el WinDbg instalado. Cuando lo uso para enumerar las manijas, me está mostrando que 914 mangos son de tipo "Evento" -
Si tomo algunos de éstos, y la salida utilizando !handle x f
consigo una salida similar a esta en la mayoría:
Type Event
Attributes 0
GrantedAccess 0x1f0003
HandleCount 2
PointerCount 3
Object Specific Information
Event Type Manual Reset
Event is Set
¿Hay alguna manera de profundizar más para determinar más sobre el evento?
Visual Studio análisis de código (o FxCop) le dirá si está fallando en desechar adecuadamente los recursos. –
John, tengo curiosidad, ¿por qué publicaste tu respuesta como un comentario y no como una respuesta? –
No creo que haya sido una buena respuesta. Esperaba que alguien más hiciera un mejor trabajo con la idea. –