次WinDbgのは、あなたが漏れてチャンネルを見つけることができます。
!dumpheap -type <Some WCF Type or yours that you suspect to be leaking>
これは、特定のタイプのすべてのインスタンスのリストが表示されます。漏れたオブジェクトを特定したら
!do <object address>
これにより、オブジェクトとそのプロパティを検査できます。あなたがClaimIdを得ることができるかもしれないこの方法では、このチャネルこれは、あなたがメモリ内に漏れてオブジェクトを保持しているもののオブジェクトを知っている、あなたはそれを修正するのに役立つようになる
!gcroot
に使用しました。これは実際にはクライアントを識別するよりも役に立ちます。これは、サーバーコードで問題になる可能性が高いからです。私はレッドゲートのメモリプロファイラをお勧めしてきた、と述べた
その他の有用なコマンド
!gcwhere <Address>
!FindRoots -gen 1
!FindRoots <Address>
!GCHandleLeaks
!eeheap
!dumpheap -stat
!TraverseHeap fileName
!ObjSize
!FindRoots
。ここ数年、メモリリークを特定するためには、長い道のりを歩んできました。 14 day trialを得ることができます。
Tnx回答のためのMiguel。私はすべてのsosコマンドを知っています。問題は、ClaimIdentityとServiceオブジェクトの関係を見つける方法です。 WCFの観点からは、通常の状況であるため、メモリプロファイラはどちらも助けません。これはメモリリークではありません。ちょうど誰かが近くのチャンネルを呼び出さなかった – Mijalko
チャンネルからあなたはOperationContextに行くことができるかもしれません、そして、あなたはそこからClaimIdentityを得ることができると思います。私はWIFを使用していないので、これについてはわかりません。 –