c# - 带有 Web 引用的 OperationContextScope

标签 c# web-services

使用服务引用我有这个:

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

我想知道如何使用网络引用而不是服务引用执行相同的操作。使用网络引用时,InnerChannel 属性不存在。

有办法做到这一点吗?

最佳答案

如果“Web 引用”是指对基于 ASMX 的 Web 服务的引用,则无法完成此操作。 “服务引用”在您的客户端应用程序中创建一个基于 WCF 的代理到服务。 “Web 引用”使用旧的 .NET 1.1 天 XML Web 服务框架 (ASMX) 创建服务代理。 OperationContextScope 仅适用于 WCF 客户端。

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

关于c# - 带有 Web 引用的 OperationContextScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582677/

相关文章:

c# - 获取 ORA-06503 : PL/SQL: Function returned without value? 的原因

python - 使用 Python 发现 Web 服务

c# - 我如何确保任何线程都不会无限期地等待?

.net - .Net 4.5 是否支持 XML 1.1(对于 XML 1.0 中无效的字符)?

c# - 单击后按钮禁用功能

c# - 将方法包装到函数中

web-services - 为什么 RPC over HTTP 是一个安全问题?

java - 使用 webservice 调用某些使用资源文件的 java 应用程序方法时出现问题

c# - 使用现有对象插入新对象

c# - 使用 knockout 填充文本框 "data-bind=click"