如何使用WCF获取PerSession上下文?

时间:2010-06-05 07:31:26

标签: c# wcf wcf-binding



我运行了自定义绑定的WCF服务,现在它使用httpTransport。

<customBinding>
    <binding name="myHttpBindingConf">
        <context contextManagementEnabled="true" protectionLevel="None"
                    contextExchangeMechanism="ContextSoapHeader" />
        <textMessageEncoding/>
        <httpTransport useDefaultWebProxy="false" />
    </binding>
</customBinding>

我已按照以下说明制作了自定义IExtension<OperationContext>以在特定上下文中存储我的数据: http://hyperthink.net/blog/a-simple-ish-approach-to-custom-context-in-wcf/

我想使用ContextMode.PerSession上下文。

哪种运输选择获得会话管理?
如何设置新的传输并启用对象发现?
如何强制PerSession上下文?

2 个答案:

答案 0 :(得分:1)

建立会话的能力不一定仅取决于使用的传输。例如。您可以使用WS-SecureConversion建立会话并仍使用HTTP(s)传输。

检查http://msdn.microsoft.com/en-us/library/ms733040.aspx部分“系统提供的会话类型”。

此外,您通常会将服务实例绑定到会话,而不是操作上下文。

答案 1 :(得分:0)

您可以在服务的实现中而不是在配置文件中指定它

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class MyService : IMyService