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