具有Web引用的OperationContextScope

时间:2013-01-29 12:16:43

标签: c# web-services

使用service reference我有这个:

using (OperationContextScope scope = new OperationContextScope(client.InnerChannel)) {
    OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpDetails;
    return predicate(client);
}

我想知道如何使用网络参考代替服务参考。使用Web引用,属性InnerChannel不存在。

有一些方法可以做到吗?

1 个答案:

答案 0 :(得分:3)

如果通过“Web引用”表示对基于ASMX的Web服务的引用,则无法完成。 “服务引用”在客户端应用程序中为服务创建基于WCF的代理。 “Web引用”使用旧的.NET 1.1天XML Web服务框架(ASMX)创建服务代理。 OperationContextScope仅适用于WCF客户端。

修复方法是为相关服务创建“服务引用”而不是“Web引用”。这样,两个服务的代理都将基于WCF,您可以使用OperationContextScope。 WCF向后兼容任何基于ASMX的服务。