4

有谁知道使用 WCF 为非 .NET 客户端公开 SOAP 接口的任何问题?例如与其他 SOAP 库不兼容?

这样可以将 SOAP 接口公开给第三方以与我们的软件集成。

4

3 回答 3

8

我在使用 WCF 时遇到的一些问题领域:

  • 它生成跨多个 URL 拆分的 WSDL。也就是说,模式的一部分位于一个 URL,另一部分位于不同的 URL,等等。“主”WSDL URL(在服务名称后仅带有“?WSDL”的那个)通过xsd:import 元素引用其他部分。许多 SOAP 客户端(例如 pre-.NET Delphi)在使用这个习惯用法时遇到了很大的困难。因此,您确实必须“扁平化”您的 WSDL,以便在实践中实现互操作性。这里给出了一种解决方案。
  • WCF 生成 XML 命名空间的方式与生成 ASMX Web 服务的方式不同。WCF 倾向于将任何服务或数据协定放入自己选择的命名空间中。同样,一些 SOAP 客户端对此也有困难。您可以通过向 ServiceContract 和 DataContract 属性添加显式命名空间来提高互操作性级别。
  • 许多 SOAP 客户端不会像 WCF 客户端那样处理故障。例如,代理生成代码不会为 WSDL 中声明的错误创建客户端对象。当然,故障仍然会传递给客户端,但是客户端必须做更多的工作才能弄清楚它是什么类型的故障。
于 2008-09-21T12:33:32.607 回答
1

WS-* 标准堆栈的版本也可能是一个互操作性问题 - 例如,某些 java 实现支持的 WS-Addressing (2003) 版本,例如支持更高版本和 1.0 版本但不支持的 WCF 不支持 Oracle BPEL 2003 年初的一个

于 2008-09-23T15:10:09.283 回答
0

通常一切正常。这显然取决于您使用的客户端 - 并非每个人都正确实施 SOAP。

PS如果您希望得到更具体的答案,能否请您改写您的问题?

于 2008-09-20T19:31:04.517 回答