私はwcfクライアントのメモリ使用量について読んだことがあります。今まで何をしているのかは間違っています。
私はwcfクライアントを使用して、私は新しい呼び出しごとにクライアントを作成しました。 (自己ホスティングとiisのために)。
どうすればいいですか?私はメンバーとして1つのクライアントを作成し、それを全面的に使用する必要がありますか?
本当にwcfクライアントのメモリ使用量はいくらですか?
ありがとうwcfクライアントを使用する最も良い方法は何ですか? (メモリワイズ)
答えて
新しいエンドポイントからサービス操作を呼び出す必要がある場合にのみ、新しいクライアントを作成する必要があると思いますが、バインドは通常同じままです。つまり、特定の契約+バインディングでも異なるエンドポイントでもクライアントを作るためのファクトリクラスを作成することができます。例えば、以下はWebHttpBindingのためになるが、あなたは何が必要結合置き換えることができます:
public class WebHttpClient<T>
{
protected WebHttpBinding Binding { get; private set; }
public WebHttpClient()
{
// set default binding here
}
public WebHttpClient(WebHttpBinding binding)
{
Binding = binding;
}
public T Get(string uri)
{
EndpointAddress _endpoint = new EndpointAddress(uri);
ChannelFactory<T> _factory = new ChannelFactory<T>(Binding, _endpoint);
_factory.Endpoint.Behaviors.Add(new WebHttpBehavior());
return _factory.CreateChannel();
}
}
をTは、あなたのサービス契約であるところ。
意味特定のバインディングのクライアントをすでに作成している場合、ファクトリは作成されたクライアントを返しますか? – guyl
メソッドGetを呼び出すたびに、指定したエンドポイントでサービスコントラクトの実装のインスタンスが返されます。 Theresにはさまざまなルートがありますが、ChannelFactory
WCF操作の中で最も高価な部分は、クライアントを作成することです。上の例は良いですが、私はそれをさらに一歩踏み出し、ChannelFactory
- 1. WCF Web APIをバージョンアップする最も良い方法は何ですか?
- 2. WCFでクライアント接続を確認する最も良い方法は何ですか
- 3. クライアントのexeを起動する最も良い方法は何ですか?
- 4. GrailsでWebサービスを使用する最も良い方法は何ですか?
- 5. ウェブパックでスタイルシートを使用する最も良い方法は何ですか?
- 6. リストコンポーネントでCSVソースデータを使用する最も良い方法は何ですか?
- 7. OpenGLをCocoaで使用する最も良い方法は何ですか?
- 8. wp7でRESTを使用する最も良い方法は何ですか
- 9. node.jsでmongoDBを使用する最も良い方法は何ですか?
- 10. WEBSERVICESでJPAを使用する最も良い方法は何ですか?
- 11. dockerでmysqlサーバを使用する最も良い方法は何ですか?
- 12. .netクライアントがJavaサーバーからサービスを使用する最も良い方法は何ですか?
- 13. Compact FrameworkでWCFを使用して保護する最も良い方法は?
- 14. OnClickイベントを使用する最も良い方法は何ですか?
- 15. 共通のベクトルサイズタイプを使用する最も良い方法は何ですか?
- 16. コレクションをロックする最も良い方法は何ですか?
- 17. クライアントからタイルをリクエストする最も良い方法は?
- 18. WCFインターフェイスを文書化する最も良い方法は?
- 19. fopen()を使用する最良の方法は何ですか
- 20. IndexedDBを使用する最良の方法は何ですか?
- 21. NuSMVを学ぶ最も良い方法は何ですか?
- 22. Django 1.5を学ぶ最も良い方法は何ですか?
- 23. jQueryを学ぶ最も良い方法は何ですか?
- 24. SQL Pivotをテーブルに適用する最も良い方法は何ですか?
- 25. プロジェクトで最も良いバージョン管理方法は何ですか
- 26. VueをExpressで使用する最も良い方法は?
- 27. 最も良い方法は何ですか
- 28. いくつかのドッカー作成で同じドッカーサービスを使用する最も良い方法は何ですか?
- 29. .NETでRESTfulなサービス "クライアント"を書く最も良い方法は?
- 30. サーバーとクライアント間でイメージを転送する最も良い方法は何ですか?
ここに実際に問題がありますか?もしそうなら、それらを処分していますか? –
さて、私はメモリの問題があり、 'using'ステートメントを緩めてそれらを適切に破棄することでそれらを修正しました。クライアントを作成するのがより高価な部分が何であるか知りたかったのですが、' ChannelFactory'や 'ChannelFactory.CreateChannel ) 'メソッドを呼び出します。 – guyl