代码之家  ›  专栏  ›  技术社区  ›  Budda

第二次请求期间wcf服务中的httpcontext.current

  •  0
  • Budda  · 技术社区  · 15 年前

    有一个Silverlight(4.0)应用程序正在调用WCF服务。在对wcf服务的第一次调用期间,从httpcontext.current.session对象获取一些数据。

    在第二次调用wcf服务httpcontext.current时为空…你知道为什么(以及如何解决这个问题)吗?

    当前设置:

    1. 选项“aspnetcompatibilityEnabled”和“runallmanagedmodulesforallrequests”在web.config中设置为true,
    2. 服务定义如下:

      [服务合同(命名空间=“”)]

      [AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Required)]

      公共类精英服务 {

    p.s.从wcf服务使用httpcontext的目的是检查: a.如果记录了当前用户(该信息存储在会话中); b.如果用户使用自己的数据(例如,只查看自己的订单详细信息)。

    P.P.S.我看到建议使用operationContext而不是httpContext,但不清楚operationContext中有哪些属性有助于解决项目“a”和“b”。

    请告知,谢谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Samuel Meacham    15 年前

    所以你有 aspNetCompatibilityEnabled 在web.config中设置为true,但您的 [ServiceContract] 班级?

    [AspNetCompatibilityRequirements(RequirementsMode =
        AspNetCompatibilityRequirementsMode.Allowed)]
    

    (你可以使用 Allowed Required )

    只是因为托管应用程序 允许 ASP.NET兼容性并不意味着各个服务都打开了它。

        2
  •  0
  •   Budda    15 年前

    这是一种魔法…现在,httpcontext.current在每个请求期间都是非空的…不知道为什么…如果你知道为什么会这样-请告诉我。

    推荐文章