gpt4 book ai didi

c# - WCF 替代跨进程/机器通信

转载 作者:太空狗 更新时间:2023-10-29 17:37:03 24 4
gpt4 key购买 nike

我正在开发一个 C# 应用程序,它包含多个需要相互通信以传递数据的 Windows 服务。这些服务可能在同一台机器上,但它们可能是远程的。为此,我研究了使用 WCF,但似乎 WCF 太重了,而且有很多额外的配置,对我来说,这些配置似乎是不必要的(这里需要 .NET 3.5,我知道 .NET 4 简化了这个)

所以我的问题是,除了提供此功能的已弃用的 .NET Remoting 之外,什么是 WCF 的最佳替代品?

最佳答案

我已经使用 PInvoke 访问 Windows RPC 运行时将近 8 年了。就运输而言,它速度极快且非常可靠。当与像 protobuf-csharp-port 这样的快速序列化程序结合使用时,产生的通信非常可靠并且 very fast .

因此,要从头开始构建它,需要三个部分:

  1. 用于序列化的 Google Protocol Buffers ( protobuf-csharp-port)。
  2. 我自己的CSharpTest.Net.RpcLibrary用于运输。
  3. 一些粘合代码将它们从 protobuf-csharp-rpc 组合在一起.

这些都可以在 NuGet 的以下包中获得:Google.ProtocolBuffers , CSharpTest.Net.RpcLibrary , 和 Google.ProtocolBuffers.Rpc .

以下是入门的简要说明:

  1. 使用 Google Protocol Buffer Language 定义一组消息和一项服务.

  2. 定义后,您将运行 ProtoGen.exe 以在 C# 中生成服务 stub 和消息。请务必添加“-service_generator_type=IRPCDISPATCH”以生成正确的服务代码。

  3. 现在您已经生成了源文件,将它们添加到项目中并引用上面列出的包中的三个程序集。

  4. 最后看一下 protobuf-csharp-rpc 上的示例客户端/服务器代码项目页面。将“SearchService”替换为您的服务名称,您应该可以运行了。

  5. 可选择更改 RPC 客户端/服务器的配置。该示例显示了仅本地主机的 LRPC 的使用;然而DemoRpcLibrary.cs源文件也显示 TCP/IP 和命名管道。

您可以随时给我发电子邮件(roger @我的用户名)以获取更多信息或示例。

更新

我写了一个快速入门指南:WCF replacement for cross process/machine communication .

关于c# - WCF 替代跨进程/机器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com