使用C#.NET开发Web服务-兼容性检查

使用C#.NET开发Web服务-兼容性检查,c#,.net,wcf,web-services,C#,.net,Wcf,Web Services,我想获得一些关于在.NET平台上使用WCF开发Web服务时需要注意的要点的信息,以确保它与大多数客户机(Java、.NET等)兼容 早些时候,我看到过这样的案例:我们开发的服务很容易被.NET客户端使用,但当我们在其他平台上测试该服务时,服务崩溃了 我有以下几点意见: 始终使用POCO数据类型 除非需要WSHttpBinding,否则请坚持使用BasicHttpBinding 我主要关心的是序列化并通过网络发送的数据协定对象 提前感谢。与其他系统的互操作可能是一项棘手的业务-WCF是唯一支持过多

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

早些时候,我看到过这样的案例:我们开发的服务很容易被.NET客户端使用,但当我们在其他平台上测试该服务时,服务崩溃了

我有以下几点意见:

  • 始终使用POCO数据类型
  • 除非需要WSHttpBinding,否则请坚持使用BasicHttpBinding
  • 我主要关心的是序列化并通过网络发送的数据协定对象


    提前感谢。

    与其他系统的互操作可能是一项棘手的业务-WCF是唯一支持过多WS-*标准的平台-大多数其他平台只支持其中的一部分,因此wsHttpBinding协议有时对其他系统来说可能“太多”

    BasicHttpBinding还可以——但它是旧的、遗留的,只是为了向后兼容,在安全性等方面没有提供太多。我建议:尽可能尝试使用wsHttpBinding,只有在确实需要时才使用basicHttp。但一定要先尝试wsHttp。它提供了更多的安全性和灵活性

    不过,DataContract是一个完全不同的问题——它实际上是XML模式(XSD文件)上的.NET包装器,这是一个行业标准,具有非常广泛和全面的支持。因此,WCF的
    [DataContract]
    部分感觉不是一个问题领域

    您的问题最有可能出现在一些领域,例如对各种SOAP版本的支持、对文本编码的不同期望,以及安全设置。但我可以向你保证——有了WCF,你就处于一个独一无二的好位置,因为WCF可以调整以支持甚至是最疯狂和最奇特的web服务和web服务客户端

    这可能需要一些工作,需要一些调整,但WCF确实为您提供了必要的工具和扩展点来成功完成这项工作


    Marc

    我的建议是,一旦构建了服务,就使用WS-I遵从性测试

    检查:

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