【问题标题】:WCF service with HttpContext带有 HttpContext 的 WCF 服务
【发布时间】:2010-08-07 04:37:47
【问题描述】:

我有一个 Web 服务,我将它转换为具有相同 asmx 扩​​展名的 wcf 服务。我有 basicHttpbinding,因为我的服务与 java、perl 等各种客户端通信。

我有一个验证,其中包含 HttpContext.Current。但我知道这在 wcf 服务中不起作用。我正在尝试使用 RequestContext 或 OperationContext 但无法这样做。我尝试使用

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]

但没有帮助。我正在从 soapUI 调用我的服务进行测试。

【问题讨论】:

    标签: wcf asmx httpcontext operationcontext


    【解决方案1】:

    好的,所以我找到了解决方案。有很多方法可以获取 HttpContext.Current 上下文。我们可以使用 OperationContext,也可以使用在 web.config 中将 AspNetCompatibilityRequirements 模式设置为 Allowed 并将 aspNetCompatibilityEnabled 设置为 true。

    对于我将 asmx 服务转换为 wcf 服务的情况,我还必须修改 HttpHandler 处理程序以删除并添加 asmx 路径到 System.ServiceModel.Activation.HttpHandler。

    【讨论】:

      【解决方案2】:

      您最好在使用 WCF 服务时使用 OperationContext。 因为您将始终得到 HttpContext.Current.Items 始终为 Null,它仅在 ASP.NET 时运行。 所以添加以下代码:-

      OperationContext.Current.Extensions.Add(extension);
      

      【讨论】:

        猜你喜欢
        • 2011-05-29
        • 1970-01-01
        • 2014-08-02
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-03
        • 2010-11-20
        相关资源
        最近更新 更多