【问题标题】:Does anyone know of any problems with using WCF to expose a SOAP interface for non .NET clients?有谁知道使用 WCF 为非 .NET 客户端公开 SOAP 接口的任何问题?
【发布时间】:2008-09-20 19:28:27
【问题描述】:

有人知道使用 WCF 为非 .NET 客户端公开 SOAP 接口有什么问题吗?例如与其他 SOAP 库不兼容?

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

【问题讨论】:

    标签: wcf networking soap network-programming network-protocols


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        附:如果您希望得到更具体的答案,能否重新表述您的问题?

        【讨论】:

        • 再说一次,你能说得更具体点吗?
        • 这是一个普遍的问题:我不知道可能会出现什么问题,但我想看看是否有人遇到过任何问题。显然,在开始编码之前,我想知道任何问题! :)
        猜你喜欢
        • 1970-01-01
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多