我想使用WCF管道来处理某些自定义格式(不是XML / SOAP)的请求,所以我必须重新实现一些标准的东西。另外,我需要支持会议。
我对消息编码器和格式化程序没有问题,但是我遇到了会话问题:
服务合同标有属性
[ServiceContract(
SessionMode = SessionMode.Required)]
实施标有属性
[ServiceBehavior(
ConcurrencyMode = ConcurrencyMode.Multiple,
InstanceContextMode = InstanceContextMode.PerSession)]
我有BindingElement cass的子类,它覆盖了CanBuildChannelListener和BuildChannelListener方法。 Latter返回IReplySessionChannel的实现。
一切似乎都有效,方法被调用,对象被创建,但是所有客户只有一个会话。即使我尝试从不同的PC访问我的服务,也只有一个会话。
所以问题是,如何正确地重新实施可靠的会话?
答案 0 :(得分:1)
回答自己。正确的IReplySessionChannel实现非常复杂。提示可以在
找到http://msdn.microsoft.com/en-us/library/ms751405.aspx (HttpCookieSession Windows Communication Foundation Sample)