生成的服务客户端可能同时具有服务终结点和与代理相关的绑定设置。首先确定哪个地址属于哪个角色。SOAP 服务仍然是目标;ProxyAddress 指定的是中间环节。

对于 BasicHttpBinding,UseDefaultWebProxy 会选择自动配置的代理行为,默认值为 true。Microsoft 的约定不支持将该 true 值与非 null 的显式 ProxyAddress 组合使用。请让这一选择保持一致,而不是同时赋值并假定其中一个会静默胜出。对于允许的未认证公共代理路由上可公开访问的 SOAP 服务,HTTP 代理列表可为 ProxyAddress 提供候选地址;不要保留来自其他终结点的代理凭据。

检查终结点实际使用的绑定

辅助方法可能构建正确的绑定,而生成的客户端仍在使用另一个已配置的终结点。请检查分配给失败调用的绑定。更改客户端从未选择的配置项不会影响其路由。

然后区分代理凭据类型与服务凭据类型。SOAP 服务所需的密码并不自动是所选网络中间环节的账户。

传输安全模式是另一项决策。仅仅因为旧答案建议就切换到仅凭据模式,会改变传输假设;这并不能证明路由或账户正确。请保留预期的目标 TLS,并使用已部署的 WCF 客户端和代理支持的认证安排。

有用的诊断会指明服务终结点、所选代理来源、绑定实例和第一个响应阶段。这样就能缩小 407 的范围,而不会把生成的服务客户端变成一堆互不相关的配置猜测。

相关文章