【问题标题】:Web Services development using C# .NET - Compatibility Check使用 C# .NET 进行 Web 服务开发 - 兼容性检查
【发布时间】:2009-09-10 13:55:50
【问题描述】:

我想获得一些关于使用 WCF 在 .NET 平台上开发 Web 服务时需要注意的点列表的信息,以确保它与那里的大多数客户端(Java、.NET 等)兼容...)。

之前我看到过一些案例,我们开发的服务很容易被 .NET 客户端使用,但是当我们在其他平台上测试服务时,服务中断了。

我有几点如下所述:

  1. 始终使用 POCO 数据类型
  2. 除非需要 WSHttpBinding,否则坚持使用 BasicHttpBinding

我主要关心的是被序列化并通过网络发送的数据协定对象。

提前致谢。

【问题讨论】:

    标签: c# .net wcf web-services


    【解决方案1】:

    与其他系统的互操作可能是一件棘手的事情 - WCF 是唯一支持大量 WS-* 标准的平台 - 大多数其他平台只支持其中的一些标准,因此 wsHttpBinding 协议对于有时其他系统。

    BasicHttpBinding 没问题 - 但它是旧的、遗留的,只是为了向后兼容,在安全性等方面没有提供太多。我建议:尽可能尝试使用 wsHttpBinding,只有在你真的必须时才回退到 basicHttp .但总是先尝试 wsHttp。它在安全性和灵活性方面提供了更多。

    但是,DataContract 是完全不同的事情 - 它实际上是 XML 模式(XSD 文件)的 .NET 包装器,这是具有广泛和全面支持的行业标准之一。因此,WCF 的 [DataContract] 部分并不像是一个问题区域。

    您的问题很可能出现在诸如对各种 SOAP 版本的支持、对文本编码的不同期望以及 - 当然 - 安全设置等领域。但我可以向您保证 - 有了 WCF,您将处于一个独特的好位置,因为 WCF 可以进行调整以支持最疯狂和最奇特的 Web 服务和 Web 服务客户端!

    这可能需要一些工作并需要进行一些调整 - 但 WCF 确实为您提供了成功完成此操作所需的工具和扩展点。

    马克

    【讨论】:

      【解决方案2】:

      我的建议是在构建服务后使用 WS-I 合规性测试。

      检查:http://www.ws-i.org/deliverables/workinggroup.aspx?wg=testingtools

      WS-I 代表 Web 服务互操作性,如果您的服务通过了几乎所有的测试,您可以 100% 确定它们可以与各种客户端一起工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2010-10-09
        • 1970-01-01
        • 2015-03-10
        • 2020-01-21
        相关资源
        最近更新 更多