3

通常の機能 (ユーザーの追加、削除、検索、更新など) を備えた WCF サービスを作成しました。この機能の実装は、エンティティ フレームワーク (SQL DB を使用) にあります。

今度はクライアント側で使用したいと思います。そして、いくつかの基本的な質問があります。

  1. クライアント側で WCF メソッドを多数呼び出しています。呼び出しのたびにキャッチを試行する必要がありますか?
  2. AddUser(User user) などのメソッドを呼び出すたびに、次のようにサービスのインスタンスを作成する必要があります。

    WcfService client = new WcfService();
    client.AddUser(user);
    

    そして別の場所で私は書いています:

    WcfService client = new WcfService(); //Again making a new instance...
    client.UpdateUser(user);
    

wcf サービスのすべてのアプリケーションに対して 1 つのインスタンスを作成する必要がありますか? または、メソッドを呼び出す前に新しいインスタンスを作成するたびに? (上記の私の例のように)。

どうもありがとう !

4

2 に答える 2

6

多くの場合、同じクライアント プロキシを再利用する必要があります。これは、この接続方法が最高のパフォーマンスをもたらすためです。初期のセキュリティ ネゴシエーション コストが高いセキュリティ機能を使用する場合、同じプロキシを再利用することは特に有益です。注: 使用する前に、必ずクライアント プロキシの状態を確認する必要があります。

同じクライアント プロキシを再利用できない場合は、キャッシュを使用する ChannelFactory プロキシの使用を検討してください。

次のリンクは、ベストプラクティスの推奨事項と共に適切な説明を提供します。 -best-practices.aspx

于 2013-09-23T14:12:47.600 に答える
4

(i) サービスに対してインスタンスを 1 回作成し、メソッド呼び出しが必要なときはいつでも同じクライアントを使用できます。接続を中止または閉じる場合は、毎回作成する必要があります。

(ii)各メソッドで try catch メソッドを使用すると、コネクションのクローズや例外の特定が容易になります。

于 2013-09-23T13:14:47.767 に答える