【发布时间】:2014-04-15 11:29:44
【问题描述】:
我创建了一个自托管的 WCF 数据服务,如您所见 here,我发现它不支持 ASP.Net 上下文(HttpContext.Current 为空)。
如果我认为会话处理在自托管数据服务中也不可用是否正确?
【问题讨论】:
标签: c# .net web-services wcf wcf-data-services
我创建了一个自托管的 WCF 数据服务,如您所见 here,我发现它不支持 ASP.Net 上下文(HttpContext.Current 为空)。
如果我认为会话处理在自托管数据服务中也不可用是否正确?
【问题讨论】:
标签: c# .net web-services wcf wcf-data-services
会话处理在自托管 WCF 数据服务中不可用,因为它使用了依赖于 ASP.Net 上下文的 HttpContext 类,它是 always null在数据服务中。 因此,您必须实施自定义解决方案来模拟 WCF 数据服务中的会话处理。
【讨论】:
在自托管服务中,您应该能够使用带有 ServiceContractAttribute.SessionMode 属性的 SessionMode 枚举来要求、允许或禁止绑定以使用连接到或支持服务合同的端点之间的会话。
例如,如果SessionMode 属性设置为SessionMode.Allowed 并且ServiceBehaviorAttribute.InstanceContextMode 属性设置为InstanceContextMode.PerSession,则客户端可以使用支持可靠会话的绑定来重复调用同一服务对象。如果您的服务支持会话,那么您可以使用 `ServiceBehaviorAttribute.InstanceContextMode' 属性来指定服务合同实现的实例与通道会话之间的关系。
以下链接提供了很好的参考信息:
http://msdn.microsoft.com/en-us/library/ff183865.aspx
http://msdn.microsoft.com/en-us/library/system.servicemodel.sessionmode.aspx
问候,
【讨论】: