SessionChannel如何真正起作用

时间:2012-06-08 10:10:01

标签: c# .net wcf wcf-sessions

我无法一遍又一遍地理解this MSDN article我们为什么要使用它以及它是如何工作的:

  1. 包含会话的数据报
  2. 会话请求 - 响应
  3. 双重会话
  4. 我们假设我有一个服务

    InstanceContextMode = InstanceContextMode.PerSession
    ConcurrencyMode=ConcurrencyMode.Single
    

    如果我有2个客户端用于此服务并且他们同时在该服务中激活方法,为什么其中一个客户端要等到服务完成另一个请求? PerSession + 2个客户端=“2”服务,每个服务器都有ConcurrencyMode.Single。我的错误在哪里?

1 个答案:

答案 0 :(得分:2)

至于你的问题的B部分,这里有一系列关于WCF实例化,并发性和限制的优秀文章:

<强>更新

检查每个客户端调用的服务上的实例上下文ID,会话ID和线程ID,并首先验证它们是否不同。

检查实例上下文ID:

OperationContext.Current.InstanceContext.GetHashCode()

检查会话ID:

OperationContext.Current.SessionId

检查线程ID:

Thread.CurrentThread.ManagedThreadId

如果每个客户都不同,那么我无法解释您遇到的问题。