1

この MSDN の記事から、なぜそれを使用する必要があるのか​​、どのように機能するのかを何度も理解できませんでした。

  1. セッションを含むデータグラム
  2. セッションでのリクエストとレスポンス
  3. セッション付きデュプレックス

私がサービスを持っていると仮定しましょう

InstanceContextMode = InstanceContextMode.PerSession
ConcurrencyMode=ConcurrencyMode.Single

このサービスに 2 つのクライアントがあり、それらが同時に setrvice のメソッドをアクティブ化する場合、サービスが他の 1 つの要求を完了するまで一方のクライアントを待機する必要があるのはなぜですか?; PerSession + 2 クライアント = それぞれが ConcurrencyMode.Single を持つ "2" サービス。私の間違いはどこですか?

4

1 に答える 1

2

あなたの質問の B 部分については、WCF のインスタンス化、同時実行性、スロットリングに関する優れた一連の記事がここにあります。

アップデート

クライアント呼び出しごとにサービスのインスタンス コンテキスト ID、セッション ID、およびスレッド ID を確認し、まずこれらが異なることを確認します。

インスタンスのコンテキスト ID を確認するには:

OperationContext.Current.InstanceContext.GetHashCode()

セッション ID を確認するには:

OperationContext.Current.SessionId

スレッド ID を確認するには:

Thread.CurrentThread.ManagedThreadId

クライアントごとにそれらがすべて異なる場合、あなたが抱えている問題を説明することはできません.

于 2012-06-08T12:21:18.303 に答える