有没有人知道使用WCF为非.NET客户端公开SOAP接口的任何问题?例如,与其他SOAP库不兼容?
这样就可以暴露SOAP接口以供第三方与我们的软件集成.
我在WCF遇到的一些问题领域:
它生成分散在多个URL中的WSDL.也就是说,模式的一部分位于一个URL,另一部分位于不同的URL,等等."主"WSDL URL(服务名称后面只有"?WSDL"的URL)通过xsd:import
元素引用其他URL .许多SOAP客户端(例如pre-.NET Delphi)在使用这个习惯用法时遇到了很大的困难.所以你必须"扁平化"你的WSDL才能在实践中实现互操作性.这里给出了一个解决方案.
WCF不会像ASMX Web服务那样生成XML命名空间.WCF倾向于将任何服务或数据协定放入其自己选择的命名空间中.同样,一些SOAP客户端对此有困难.您可以通过向ServiceContract和DataContract属性添加显式命名空间来提高互操作性级别.
许多SOAP客户端不会像WCF客户端那样处理错误.例如,代理生成代码不会为WSDL中声明的错误创建客户端对象.当然,故障仍会传递给客户端,但客户必须做更多的工作来弄清楚它是什么类型的故障.