我正在启动此 Wiki 以收集有关在 WCF 中创建可互操作的 Web 服务(而不是客户端)的最佳实践。如果您知道任何通常不可互操作或无法与特定平台互操作的功能,请分享您的经验。
问问题
2838 次
3 回答
4
相当简单:
避免任何 .NET 细节,如异常(将它们变成 SOAP 错误)
不要使用任何以
net
netTcp、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 回答