我应该使用命名管道还是.NET Remoting与我的机器上正在运行的进程进行通信?.NET进程间通信的最佳选择是什么?
回答
WCF是最好的选择。它支持a number of different transport mechanisms(includingNamedPipes)并且可以完全由配置驱动。我强烈建议你看看WCF。
这是一个博客,做一个WCF vs Remoting performance comparison。
从博客引述:
的WCF和.NET远程处理在性能上真正具有可比性。差异非常小(测量客户端延迟),无论哪个更快一点都没关系。虽然WCF比.NET Remoting具有更好的服务器吞吐量。如果我会开始全新的项目,我会选择WCF。无论如何,WCF远不止Remoting以及我喜欢它的所有功能。
有利于远程处理的进一步证据。从微软远程/ WCF团队的某个角度来看:“Remoting有很少的开发投入,WCF是Remoting的继任者。”从这里http://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated – MarkJ 2009-08-27 12:31:24
.net远程处理内置于.net内部进程通信。如果你使用它,他们将继续支持并可能在未来的版本中加强它。命名管道没有给你在未来版本的增强承诺.net
不太可能会增强远程处理。来自Remoting/WCF团队的成员:“Remoting的开发投资很少,WCF是Remoting的继任者。”从这里http://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated – MarkJ 2009-08-27 12:30:27
如果你的意思是进程间通信,我使用.NET Remoting到目前为止没有任何问题。如果两个进程位于同一台机器上,则通信速度非常快。
命名管道确实更高效,但他们需要至少设计一个基本的应用协议,这可能是不可行的。远程处理允许您轻松地调用远程方法。
WCF通过命名管道也可以。而且您可以在两个流程中使用相同的合约组合。 – 2008-09-17 17:42:53
如果它在一台机器上,Named Pipes可以提供更好的性能,并且可以使用WCF和remoting infrastructure来实现。或者你可以直接使用System.IO.Pipes。
.net远程处理本身并不是一个协议。它可以让你选择使用哪种协议:SOAP,named-pipes等。
远程处理在.NET框架2.0提供了用于同一机器内的进程间通信的IPC 通道。
如果您使用.NET Framework 3.0或更高版本,我将使用WCF。使用WCF,你可以使用不同的绑定,依赖于性能/互操作性/等等之间的折衷。你需要的。
如果性能不重要,并且您需要与其他Web Service技术进行互操作,则需要使用WS-HTTP绑定。对于你的情况,你可以使用WCF与net-tcp绑定或命名管道绑定。要么应该工作。
我个人的看法是,WCF方法更干净,因为您可以执行合同驱动的服务并专注于消息,而不是对象(我在此基于WCF/.NET Remoting的默认编程模型进行泛化)。我不喜欢通过网络发送对象,因为很多语义信息丢失或不清楚。当你所做的只是发送一条类似于WCF的消息时,将通信与单个节点组成的类/基础结构之间的关注区分开来变得更加容易。
WCF还提供了灵活性。通过改变一些配置(绑定),你可以在其他机器上拥有相同的服务,而不是同一台机器上的IPC。因此你的代码保持灵活性。
用于.NET的IPC API列表:http://weblogs.asp.net/ricardoperes/local-machine-interprocess - 通讯 - 用网 – 2015-10-16 13:21:05
- 1. 进程间通信的最佳途径是什么?
- 2. 什么是OS X中进程间通信的首选方法?
- 3. 什么是DropCreateDatabaseIfModelChanges(MVC3)的最佳选择?
- 4. mmap是进程间通信的最佳方式吗?
- 5. 什么是与Firefox插件进行通信的最佳方式
- 6. Amazon EC2实例之间进行通信的最佳做法是什么?
- 7. 使.NET应用程序可编写脚本的最佳选择是什么?
- 8. 2 .Net应用程序之间进行通信的最佳方式?
- 9. 用C#在两个进程之间进行通信的最佳方式是什么?
- 10. 什么是.Net的最佳EXIF库?
- 11. 2个C#进程之间进程间通信的最简单方法是什么?
- 12. 什么是.NET DataTable最佳用例?
- 13. 什么.net框架用于在两个进程之间进行通信
- 14. 什么是与Windows上的USB HID设备进行通信的最佳USB库?
- 15. ViewController与他的模型进行通信的最佳方式是什么?
- 16. 什么是WCF服务和独立线程之间进行通信的最佳方式?
- 17. 在Tomcat容器中应用程序之间进行通信的最佳解决方案是什么?
- 18. 什么是最佳的计时器间隔? .NET Windows服务
- 19. 从UserControl与托管PhoneApplicationPage进行通信的最佳方式是什么?
- 20. 使用PhoneGap与服务器进行通信的最佳方式是什么?
- 21. Adobe flex与Java通信的最佳方式是什么?
- 22. 什么是与MySQL服务器通信的最佳方式?
- 23. 实施B2B通信的最佳方式是什么?
- 24. 什么是逆转视图控制器之间通信的最佳方式?
- 25. 两台服务器之间通信的最佳方式是什么?
- 26. 大型项目中进程间通信的最佳和最简单的方法
- 27. 进程间通信
- 28. 进程间通信
- 29. 选择视频的最佳场景的算法是什么?
- 30. 符合XHTML标准的固定间距的最佳选择是什么?
哇我只是基本上问了一样的问题... http://stackoverflow.com/questions/84860/how-to-communicate-with-a--windows-service-from-an-application-that -interacts-wi – 2008-09-17 16:07:15