6

我正在启动此 Wiki 以收集有关在 WCF 中创建可互操作的 Web 服务(而不是客户端)的最佳实践。如果您知道任何通常不可互操作或无法与特定平台互操作的功能,请分享您的经验。

4

3 回答 3

4

相当简单:

  • 避免任何 .NET 细节,如异常(将它们变成 SOAP 错误)

  • 不要使用任何以netnetTcp、netNamedPipes、netMsmq 等开头的绑定 -wsHttpBinding用于安全的 WS-* 服务,以及basicHttpBinding与最奇怪的客户端平台的最大范围/兼容性

  • 不要使用 NetDataContractSerializer

于 2010-08-19T18:44:14.633 回答
3

我建议 WCF REST 公开多种序列化格式,对于初学者来说绝对是 xml。

于 2010-08-19T18:44:48.613 回答
3

通用互操作性:

  • 只有 HTTP 和 HTTPS 传输通道可以互操作
  • 安全凭证的协商不可互操作(消息安全中的协商服务凭证)。它使用其他平台并不总是支持的 TLSNego 或 SPNego 协议。
  • HTTP 流式传输也会引起麻烦
  • HTTP 通道上的二进制编码不可互操作
  • OleTransactions 不可互操作
  • 谨慎使用服务安全上下文(消息安全中的 estabilishSecurityContext)。它使用在某些平台上不可用的 WS-Secure Conversation 协议

编辑:

  • WSDualHttpBinding 和 CompositeDuplexBindingElement 不可互操作
于 2010-08-19T18:48:34.860 回答