我正在使用一个包含多个Windows服务的C#应用程序,这些服务需要彼此通信才能传递数据。这些服务可能在同一台计算机上,但可以是远程的。我考虑过为此目的使用WCF,但似乎WCF太重了,并且有很多额外的配置对我来说似乎是不必要的(.NET 3.5是这里的要求,我知道.NET 4对此做了简化)
因此,我的问题是,除了已弃用的提供此功能的.NET Remoting之外,什么是WCF的最佳替代方案?
最佳答案
我使用PInvoke来访问Windows RPC运行时已将近8年了。就运输而言,它的速度很快且非常可靠。当与诸如protobuf-csharp-port之类的快速串行器结合使用时,所产生的通信是坚如磐石和very fast。
因此,要从头开始构建它,需要三个部分:
这些在以下软件包的NuGet中都可用:Google.ProtocolBuffers,CSharpTest.Net.RpcLibrary和Google.ProtocolBuffers.Rpc。
以下是快速入门指南:
您可以随时向我发送电子邮件(在我的用户名@ roger)获取更多信息或示例。
更新
我写了一个快速入门指南:WCF replacement for cross process/machine communication。