Mam proces, który jest gospodarzem WCF ServiceHost. Przecieka jak szaleje zgodnie z ProcessExplorer. Przeszedłem przez ten kod i nie mogę znaleźć niczego oczywistego, co powoduje wyciekanie uchwytów.Jak zdiagnozować wyciek uchwyt?
Najbliżej mogę przyjść na to zestawienie uchwytów dostarczonych przez ProcessExplorer, ale użyteczność, która wydaje ograniczona. Czy są jakieś inne narzędzia, które pomogą zdiagnozować, skąd pochodzi uchwyt, np. Za pomocą śladu stosu lub czegoś podobnego?
EDIT
Mam WinDBG zainstalowany. Gdy używam go do listy uchwyty, to pokazuje mi, że 914 uchwyty są typu „zdarzenie” -
Jeśli wybiorę kilka z nich, a wyjście z użyciem !handle x f
uzyskać wynik podobny do tego na najbardziej:
Type Event
Attributes 0
GrantedAccess 0x1f0003
HandleCount 2
PointerCount 3
Object Specific Information
Event Type Manual Reset
Event is Set
Czy istnieje sposób, aby kopać dalej, aby określić więcej o tym wydarzeniu?
Visual Studio analizy kodu (lub FxCop) poinformuje Cię, jeśli nie udaje Ci się prawidłowo Usunąć zasoby. –
John, jestem ciekawa, dlaczego wysłałeś swoją odpowiedź jako komentarz, a nie odpowiedź? –
Nie sądzę, że to była odpowiedź. Miałem nadzieję, że ktoś inny poradzi sobie lepiej z tym pomysłem. –