我使用NetTcpBinding创建了一个会话服务:每个客户端都开始与服务进行会话,因此我需要以某种方式识别每个会话。显然,当会话结束时,其标识符也应该更改,以便应用程序可以理解客户端可能已经更改。
我不知道WCF或者一般来说,.NET是否提供了一种根据我刚才描述的要求唯一标识各种活动会话的方法。
或者我想到了以下想法:
public class ConnectionIdentifier {
public UInt16 ConnectionNumber {get; set;}
public Uint64 ConnectionTime {get; set;}
}
因此,当建立新会话时,我会为其分配会话编号(即ConnectionNumber
)以及会话启动的时间(即ConnectionTime = DateTime.Now.Ticks
)。
但是,在这种情况下,如何识别会话结束以释放相应的号码?
此外,是否有其他方法可以唯一地识别会话?
答案 0 :(得分:1)
WCF内置了此功能。这样做的方法是将服务合同标记为“每个会话”,然后为每个客户端/会话获取服务实例。