我们的第三方 API 提供两种不同的 Web 服务,但具有相同的方法、模型。然而,它们仅在 URI 上有所不同(Web 服务路径、操作路径 [操作合同]。
所以我决定:
使用 VS 从他们的 wsdl 生成代码。
编辑命名空间以使用相同的“通用”而不是使用服务引用,而是使用 Reference.cs 编辑的代码。
创建一个新代理来处理要使用的服务的正确 URI(将 Reference.cs 包装在其中)。
现在,我遇到了“Method1”的问题,因为它们有不同的操作名称。有以下例外:
“服务器无法识别 HTTP Header SOAPAction 的值:http: //www.api.com/service/Method1 ”
我只是注意到它正确的操作名称是: http: //www.api.com/service1/Method1
现在的问题是,是否有任何配置或行为可用于更正每个服务的每个方法的操作名称?
或者只要他们继续为 API 的每个实现添加合约,我也应该继续为每个实现添加合约,并为此使用 ChannelFactory?
请帮忙,谢谢。