我應該使用命名管道還是.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