2011-01-13 14 views
3

私は、net.tcpバインディングを使用してIISでホスティングし、PerCallインスタンス化用に構成されたWCFサービスを持っています。テスト目的のために、私は絶対に何もしない単一の操作を持っています。WCFメモリ使用

クライアントが接続して操作を呼び出すたびに、w3wp.exeプロセスのメモリ使用量が増加し、クライアントが接続を閉じた後にメモリ使用量が減少しません。繰り返し呼び出した後、メモリは最初の20MBから500MB以上に増加しました。

これは正常な動作ですか?

答えて

2

PerCallインスタンスコンテキストモードでサービスを呼び出すと、メソッドが返された後でメモリを解放する必要があります。それがあなたのシナリオでは起こっていないので、サービスの処理を明示的に制御できるように、サービスにIDisposableインターフェイスを実装してみてください。また、使用直後にクライアント上のプロキシ接続を閉じるようにしてください。

+0

はいプロキシ接続を正しく終了しています。操作に文字通りコードが含まれていないとすれば、disposeメソッドにはどうすればよいですか? –

+0

その場合、あなたは処分するものがありません。メモリプロファイラを使ってアプリケーションをプロファイリングしたことがありますか?それは、メモリリークがどこにあるのかの良いイメージを与えるでしょう。 –

+0

プロファイルにNO CODEのプロファイルはありますか?私たちはMicrosoftの問題を解決していますか?設定に問題がありますか? –