对于基于 .NET Framework HttpWebClientProtocol 的 ASMX 客户端,请在首次网络操作之前配置其公共 Proxy:

var service = new ReportsService();
service.Proxy = new WebProxy("http://proxy.example:8080")
{
    Credentials = proxyAccount
};

ReportsService 是生成的类,proxyAccount 来自部署。SOAP 服务凭据是独立的。此赋值无需在每个生成的操作中重复。

如果改动涉及底层请求选项或插桩,请使用旧式基类中可重写的 GetWebRequest(Uri)。当生成的类为分部类时,请在单独编译的文件中保留匹配的分部声明;否则可由合适的派生客户端提供该重写。调用基类实现并保留正常的请求构建。

该放置方式在更新 Web 引用后依然有效:重新生成可能替换 Reference.cs 中的手工修改,而单独维护的扩展仍可复现。

只修改真正需要的请求行为。复制 KeepAlive 变通方案可能影响连接复用以及依赖连接状态的身份验证。

这是 ASMX/.NET Framework 模型。WCF 及其他 SOAP 栈有自己的传输接口。在引入自定义扩展之前,请先选择受支持的客户端设置。

相关文章