我有一个连接到多个客户端的 WCF 服务。服务配置如下:
ServiceBehavior(
InstanceContextMode = InstanceContextMode.Single,
UseSynchronizationContext = false,
...
在我使用的服务中,使用 OperationContext.Current.SessionId 识别客户端。
public void Register()
{
Debug.WriteLine(OperationContext.Current.SessionId);
}
想象一下以下场景: - Client1 调用 Register - 服务在 Thread1 中运行 Register - 在一段时间后 Client2 调用 Register - 服务也在 Thread1 中运行 Register(理论上是可能的,不是吗?)
知道 OperationContext.Current 是 ThreadStatic,显示第二个调用的内容:
- 会话 1,因为 OperationContext.Current 已在第一次调用中设置
- 还是第 2 节 ..?
先感谢您 ...