第V章には、バインディングWCFのセッションと、デフォルトの同時インスタンスをサポートしていません。

セッション・バインディングがサポートされていないとき5.1は、作成などbasicHttpBinding、WCFとして、これらの設定を使用している場合。ConcurrencyMode.SingleとInstanceContextMode.PerSession、リストは、サービスの任意の同時インスタンスまたは行為を定義していない、それはデフォルト値を使用するWCFに指示示し、それは要求を受信した各サービスの新しいインスタンスを作成して、独自のスレッドでコードを実行します。これは、返す前に5秒間待機します。
5.1デフォルトのリストと行動サービスの同時インスタンスを使用して
1 [ServiceContract]
2 public interface IStockService
3 {
4     [OperationContract]
5     double GetPrice(string ticker);
6 }
01 [ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Single, InstanceContextMode=InstanceContextMode.PerSession)]
02 public class StockService : IStockService
03  {
04      StockService()
05      {
06          Console.WriteLine("{0}:Created new instance of StockService on thread", DateTime.Now);
07      }
08      public double GetPrice(string ticker)
09      {
10          Console.WriteLine("{0}: GetPrice called on thread {1}", DateTime.Now, Thread.CurrentThread.ManagedThreadId);
11          Thread.Sleep(5000);
12          return 94.85;
13      }
14  }
   リスト5.2は、クライアントコードが3回GetPriceメソッドを呼び出して表示されます。クライアントコードの非同期は、このメソッドを3回呼び出してから、すべての結果が返される終了する前に待ちます。
   図5.2は、出力(右側)クライアント(左)とサーバーを示しています。出力は、3つのクライアント要求が同期して送信されて表示され、5秒後に結果を返します。サーバーの出力は、サービスクラスのインスタンスを作成するために、各クライアントの要求が表示され、各要求は独自のスレッドで処理されます。basicHttpBindingがセッションをサポートしていないため、PerSessionのデフォルトの動作PerCall同じ。ConcurrencyMode.Singleのセットアップ手順は、各インスタンスは一つだけのスレッドの実行を可能にするWCFながら、要求ごとにInstanceContextMode.PerSession行動指針のWCFは、新しいインスタンスを作成します。
図5.2は、結合セッションConcurrencyModeのデフォルトInstanceContextModeと出力結果をサポートしていません。


==========

より転載

 

ます。https://www.cnblogs.com/llbofchina/archive/2011/06/30/2094041.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33937778/article/details/94206802