GUI和windows服务通信
Posted
技术标签:
【中文标题】GUI和windows服务通信【英文标题】:GUI and windows service communication 【发布时间】:2010-12-18 21:15:42 【问题描述】:我知道自 Vista 以来,C# 无法将 UI 表单直接挂接到 Windows 服务。这已在 Microsoft 网站上说明。
我在这方面的问题是:“从 UI 到服务的最佳通信模式是什么?”
我听说过远程处理、Web 服务和直接 TCP。还有其他方法吗?他们如何与前面提到的方法进行排名?它们的实现有多复杂?
我的应用程序用于 Intranet,而不是 Internet。微软平台将在双方,所以互操作性不是一个因素,但速度是。我的意思是我想通过网络上可能的最小数据包。
TIA
【问题讨论】:
【参考方案1】:如果您打算使用 .NET 进行开发,请使用 WCF 进行进程间通信。 WCF 极大地简化了开发,因为与特定通信机制(例如,套接字、管道等)相关的复杂性在统一的编程模型之后被抽象出来。因此,无论您选择使用 http、tcp 还是命名管道作为传输机制,编程模型都是相同的。
我强烈推荐 Juval Lowy 的书 Programming WCF Services 了解 WCF 的所有内容。您也可以访问他的网站IDesign.net,获取免费的 WCF 代码示例。
有关 WCF 的概述,请在 dnrTV 观看免费的video。它涵盖了 WCF 的用途,并通过一些易于理解的示例演示了 WCF 编程。
如果您尚未创建 Windows 服务但计划在 C# 中创建,您可以按照here 的分步操作。
【讨论】:
【参考方案2】:进程之间有多种通信方式——命名管道、邮槽、内存映射文件、套接字、ActiveX/COM 对象,仅举几例。这真的归结为您熟悉/熟悉哪些技术。
【讨论】:
以上是关于GUI和windows服务通信的主要内容,如果未能解决你的问题,请参考以下文章
C# (.NET 2.0) 中 Windows 的进程间通信