【问题标题】:Session variable in WCF applicationWCF 应用程序中的会话变量
【发布时间】:2010-03-15 17:34:19
【问题描述】:

我需要在我的 WCF 应用程序中使用或激发一个非常简单的会话对象。

我只需要在调用开始时存储一些值,并且在通过一些不同的服务方法时我需要访问这些值。

Asp.NET 会话非常适合用于此目的,因此我需要了解 WCF 应用程序上有什么可用于存储此类值。

注意:这只是一个每次调用会话,我不需要在从客户端到服务等的不同调用之间保留此会话..

【问题讨论】:

    标签: c# .net wcf web-services


    【解决方案1】:

    您所描述的内容(在单个请求的生命周期内保留的自定义上下文)更像HttpContext.Items,而不是 ASP.NET 会话。

    WCF 确实有一个名为OperationContext 的类,它类似于HttpContext。它没有用于自定义上下文的 Items 属性,但 this blog post 描述了一种可用于实现所需目标的技术。

    【讨论】:

    • @Joe 链接已损坏。你能提供更多信息吗?谢谢!
    【解决方案2】:

    你必须做几件事。

    在您的主机上设置 aspNetCompatibilityEnabled = true(在 system.ServiceModel | serviceHostingEnvironment 内)

    服务(不是合同) - 应归因于:

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    

    最后,您必须将绑定上的 allowCookies 设置为 true。

    <basicHttpBinding>
     <binding name="SessionBinding" allowCookies="true">
    </basicHttpBinding>
    

    只是好奇,你确定你需要会话吗?

    【讨论】:

    • 应该在我假设的服务中设置
    • 应该在客户端设置
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    相关资源
    最近更新 更多