开发可互操作的 WCF Web 服务时我应该了解什么?

发布于 2024-09-15 08:02:32 字数 95 浏览 5 评论 0原文

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

I'm starting this Wiki to collect best practices about creating interoperable web services (not clients) in WCF. Please share your experience if you know any feature which is not generally interoperable or which is not interoperable with specific platform.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

万人眼中万个我 2024-09-22 08:02:32

相当简单:

  • 避免任何 .NET 细节,例如异常(将它们转换为 SOAP 错误)

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

  • 不要使用 NetDataContractSerializer

Fairly simple:

  • avoid any .NET specifics like Exceptions (turn them into SOAP faults)

  • don't use any binding that start with net like netTcp, netNamedPipes, netMsmq and so forth - use wsHttpBinding for secure WS-* services, and basicHttpBinding for maximum reach / compatibility with even the weirdest client platforms

  • don't use the NetDataContractSerializer

韵柒 2024-09-22 08:02:32

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

I recommend WCF REST exposing multiple serialization formats, definitely xml for starters.

静待花开 2024-09-22 08:02:32

一般互操作性:

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

编辑:

  • WSDualHttpBinding 和 CompositeDuplexBindingElement 不可互操作

General interoperability:

  • Only HTTP and HTTPS transport channels are interoperable
  • Negotiation of security credentials is not interoperable (negotiateServiceCredential in message security). It uses TLSNego or SPNego protocols which are not always supported by other platforms.
  • HTTP streaming can cause troubles as well
  • Binary encoding over HTTP channel is not interoperable
  • OleTransactions are not interoperable
  • Use service security context with care (estabilishSecurityContext in message security). It uses WS-Secure Conversation protocol which is not available on some platforms

Edit:

  • WSDualHttpBinding and CompositeDuplexBindingElement are not interoperable
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文