如何将asp.net Session分享到WCF服务

时间:2010-05-27 06:02:47

标签: asp.net wcf session

我正在使用带有WCF服务的asp.net网站,具有wsHttpBinding,启用了Aspnet兼容性,指定为Sessionmode -allowed,启用了服务行为,启用了客户端会话cookie。它看起来像Asp.Net会话对象和WCF会话(HTTPContext.Current.Session)独立工作。如何将Asp.net会话值分享给WCF会话,反之亦然。

4 个答案:

答案 0 :(得分:1)

我建议您不要让您的Web服务依赖于托管环境,而是建议您将所需的参数添加到操作合同中,以便消费者传递它,在您的情况下是一个ASP.NET应用程序,它将从会话。

答案 1 :(得分:0)

在您的服务界面中:

[ServiceContract]
public interface IService
{
    [OperationContract]
    string GetSessionValue();

    [OperationContract]
    void SetSessionValue(string value);
}

在你的svc中:

public class Service1 : IService
{
    public string GetSessionValue()
    {
        return "your value";
    }

    public void SetSessionValue(string value)
    {
        // your code here
    }
}

最后从后面的Web代码中使用该方法。

答案 2 :(得分:0)

我搜索了很多但找不到方法。我找到的唯一选项是在同一个虚拟目录中使用启用cookie的服务。最好将其保持为RESTful服务

答案 3 :(得分:0)