【发布时间】:2015-07-09 21:04:04
【问题描述】:
当我设置 SessionMode = SessionMode.Required 和 InstanceContextMode=InstanceContextMode.PerCall 时,会话存在,每次我调用方法时都会创建新实例,但是否也创建了新会话?基于this,答案是肯定的
会话通道的行为:每次调用的会话和 InstanceContext。
我创建了简单的应用程序并设置了
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
[ServiceContract(CallbackContract = typeof(IRepairCallbackContract), SessionMode = SessionMode.Required)]
我正在展示
Debug.WriteLine(Counter + "" + OperationContext.Current.SessionId);
Counter += 1;
事实证明,Counter 始终等于 1(默认)并且 session 始终相同,因此这意味着 session 与 msdn 中所说的相反。
我在阅读Programming WCF Services, 3rd Edition时感到困惑,并且有声明:
如果服务被配置为每次调用实例化,仍然可以有一个传输会话,但对于每个调用,WCF 都会创建仅用于该调用的新上下文。
【问题讨论】:
标签: wcf