【发布时间】:2010-10-08 13:37:51
【问题描述】:
当我使用 NetTcpBinding 公开服务时,是否在表面下使用 .Net 远程处理?我可以在客户端使用 .Net 远程处理使用此服务吗?
我问这个是因为我一直认为 WCF 只是底层协议的包装器,例如 WS*、Remoting、COM+ 和 MSMQ。虽然我知道公开 WS* 会按预期工作,但其他人似乎更加矛盾。
【问题讨论】:
当我使用 NetTcpBinding 公开服务时,是否在表面下使用 .Net 远程处理?我可以在客户端使用 .Net 远程处理使用此服务吗?
我问这个是因为我一直认为 WCF 只是底层协议的包装器,例如 WS*、Remoting、COM+ 和 MSMQ。虽然我知道公开 WS* 会按预期工作,但其他人似乎更加矛盾。
【问题讨论】:
WCF/NetTcpBinding 与远程处理不同。 WCF 是一个基于消息的 API;远程处理是一个激活/代理框架(本质上)(see also)。
我非常怀疑您是否可以通过远程客户端使用 WCF/NetTcpBinding 服务;他们太不一样了。
WCF 是一个框架,它提供对多种消息传递协议的统一访问 - 实际上您可以添加自己的 - 但这并不容易。
我建议使用适当的 WCF 客户端,或者(如果这不可能)使用基本 http 客户端,或者(我最不喜欢的选项)如果你真的必须使用旧式远程处理。
【讨论】:
WCF 不仅仅是一个包装器。它是一个伪魔术层,根据配置信息为组件开发人员处理大量内容。使用 WCF,您可以创建服务合同和实现,然后通过 HTTP、HTTPS、NET-TCP 在多台机器上使用它们,通过命名管道、安全、非安全等在单台机器上使用它们,只需调整配置设置即可。
这与 .net 远程处理的方式截然不同。
获取 Juval Lowy 的“Programming WCF Services”的副本,以更好地了解您可以使用 WCF 做什么。
【讨论】: