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

时间:2009-09-10 04:37:45

标签: c# .net wcf web-services

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

早些时候我看到过我们开发.NET客户端很容易使用的服务的情况,但是当我们用其他平台测试服务时,服务就破了。

如下所述,我对我的观点很少:

  1. 始终使用POCO数据类型
  2. 除非需要WSHttpBinding,否则坚持使用BasicHttpBinding
  3. 我主要关注的是通过网络序列化和发送的数据合约对象。

    提前致谢。

2 个答案:

答案 0 :(得分:3)

与其他系统互操作可能是一个棘手的业务--WCF是唯一支持大量WS- *标准的平台 - 大多数其他平台仅支持其中的一些,因此wsHttpBinding协议可能“太多”其他系统有时。

BasicHttpBinding是可以的 - 但它是旧的,遗留的,只是为了向后兼容,在安全性等方面提供的不多。我建议:尝试尽可能使用wsHttpBinding,如果你真的必须回到basicHttp 。但总是首先尝试wsHttp。它在安全性和灵活性方面提供了更多。

DataContract是一个完全不同的问题 - 它实际上是XML架构(XSD文件)的.NET包装器,这是行业标准之一,拥有非常广泛和非常全面的支持。因此,WCF的[DataContract]部分不会成为问题区域。

您的问题最有可能出现在诸如支持各种SOAP版本,对文本编码的不同期望以及 - 当然 - 安全设置等方面。但我可以向您保证 - 通过WCF,您可以获得独特的优势,因为WCF可以进行调整,以支持最疯狂,最具异国情调的Web服务和Web服务客户端!

这可能需要一些工作,需要进行一些调整 - 但WCF确实为您提供了必要的工具和扩展点,以便成功完成此任务。

马克

答案 1 :(得分:2)

我建议您在构建服务后使用WS-I一致性测试。

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

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