【问题标题】:What is the difference between .NET remoting and WCF/TCP for local/LAN communication?.NET 远程处理和用于本地/LAN 通信的 WCF/TCP 有什么区别?
【发布时间】:2011-05-22 09:50:14
【问题描述】:

好的,所以我知道 WCF 应该替换 dotNET remoting,但我似乎无法真正理解 WCF 是否是具有更多选项的完全替代品,或者 .NET 远程处理是否提供了一些缺少的功能WCF?

正如标题所暗示的,我不需要任何 Web* 的东西。用例是让 C# 桌面应用程序公开一个 RPC-ish 接口,以使其他程序可以与应用程序通信/控制该应用程序。可能的客户端数量可能

我发现 this question 要求类似的东西,但 this other question 似乎暗示 .NET-remoting 实际上可以以 WCF 不提供的方式使用。

【问题讨论】:

标签: .net wcf .net-remoting


【解决方案1】:

WCF 设计中没有“通过引用编组”的概念。按引用封送是否是一个好主意是另一回事,但不管它是 WCF 中不存在的主要 .NET 远程处理功能。

【讨论】:

  • 这是否意味着每一点通信都涉及复制对象(如 Marshall-by-value),还是意味着您不需要担心指定“:MarshallByRefObject”还是意味着完全不同的东西?
  • 是的,WCF 中的所有通信都涉及复制/序列化。
  • 好的,然后,赞成这个并反对关于它是一个完全替代的错误答案。顺便说一句,Microsoft 从未完全解决但由 MarshallByRefObject 和 AppDomains 部分解决(仅 REST 调用)的一种情况是 stackoverflow.com/questions/26160118/…
【解决方案2】:

将 WCF 与自托管选项一起使用(在桌面应用程序中)。假设所有其他客户端都是 .NET,则公开 net.tcp 二进制端点。

在 iDesign 下载页面查看示例“表单主机”:http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11

【讨论】:

    【解决方案3】:

    WCF 完全替代了 .net 远程处理。您的方案对 WCF 完全有效。阅读一些教程后,您将轻松完成它。所有提到的用例都是有争议的,我认为现在没有理由使用远程处理。

    【讨论】:

    • WCF 不是完全替代品;正如 Max Strini 提到的,它没有 marshal-by-ref。
    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2012-02-25
    相关资源
    最近更新 更多