在.net webservice中全局启用会话

时间:2014-03-18 10:56:53

标签: c# asp.net wcf

是否有办法全局启用会话(即在web.config中)而不是Web服务中的每个方法?

我们有一个庞大的(wcf)webservice,有许多方法,我宁愿不必进入并为每个方法添加属性......

2 个答案:

答案 0 :(得分:0)

在谷歌上快速搜索会告诉您需要在ServiceContract上指定属性,而不是在方法级别。

[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples", SessionMode=SessionMode.Required)]
public interface ICalculatorSession

此外,WCF会话表示为服务实例(作为CLR对象),状态是每个服务实例的一部分。会话由调用WCF客户端启动。 WCF依靠特殊上下文来为会话提供关联:会话通道,安全对话,可靠消息传递等。

WCF会话与ASP.NET Session不同。要使用ASP.NET会话,您需要在WCF服务上启用ASP.NET兼容模式。

[AspNetCompatibilityRequirements(RequirementsMode =AspNetCompatibilityRequirementsMode.Required)]
    public class CalculatorService : ICalculatorSession

有用的链接:

Using Sessions

ASP.NET Compatibility

答案 1 :(得分:0)

好的,我找到了一个更好的方法。我现在使用的是MemoryCache,它是System.Runtime.Caching的一部分