我有 4 个门户(WW、EU、AU、US),每个门户都有自己的 Web 服务(通过 PHP,这意味着我无法控制)。
对于这 4 个 Web 服务,我有 4 个客户端(由 VS.Net Add Web Reference 生成)。
有一个方法叫它CommonMethod
,在所有 Web 服务上都是一样的,返回一个类型为 的对象CommonClass
。
- 当我调用该方法(使用 EU 代理类)时,我得到一个 InvalidOperationException
There is an error in XML document (2, 615).
,并且 InnerException 说“无法将 NS.com.AU.CommonClass 类型的对象分配给 NS.com.EU.CommonClass 类型的对象。”。 - 当我调用该方法(使用美国代理类)时,我得到一个 InvalidOperationException
There is an error in XML document (2, 615).
,并且 InnerException 说“无法将 NS.com.AU.CommonClass 类型的对象分配给 NS.com.US.CommonClass 类型的对象。”。 - 当我调用该方法(使用 AU 代理类)时,不会引发异常。
- 当我调用该方法(使用 WW 代理类)时,我得到一个 InvalidOperationException
There is an error in XML document (2, 615).
,并且 InnerException 说“无法将 NS.com.AU.CommonClass 类型的对象分配给 NS.com.WW.CommonClass 类型的对象。”。
我在网上搜索了这样的错误,它是 XML,所以出现了很多不相关的东西,找不到有用的东西。
现在我注意到,这 4 个 Web 服务在其 WSDL 文档中使用相同的命名空间 (xmlns:tns="urn:rambo.com:RamboComApi")。这可能是混淆和类型转换异常的根源吗?我应该告诉 Web 服务的作者为每个 Web 服务选择不同的命名空间吗?