【问题标题】:How can I achieve communication between a windows desktop service and a windows desktop application?如何实现 windows 桌面服务和 windows 桌面应用程序之间的通信?
【发布时间】:2015-06-27 03:55:16
【问题描述】:

我正在编写一个 Windows 桌面服务,它应该每周从文件服务器下载内容,但它需要用户登录信息才能运行。

我需要该服务能够“回复”我开发的简单托盘应用程序,以便在发生事情时通知它。像

用户登录信息好吗?

内容开始下载了吗?

内容下载完成了吗?

我看过关于 WCF 的帖子,但乍一看,WCF 对我来说就像是专为绕过 Web 服务而设计的。这将是一个桌面服务,而不是一个 Web 服务,所以除非我的解释有误,否则我认为 WCF 不适合我吗?我的选择是什么? (或者,如果我对 WCF 有误解,有人可以指点我一个简单的教程吗?)

【问题讨论】:

  • 你看我的帖子了吗?我正在使用桌面服务。我不认为 WCF 是完成这项工作的正确工具。是你误会了我说的话,还是我说的不是很清楚?
  • 您可以使用消息队列(如 MSMQ)在 Windows 服务和桌面应用程序之间来回发送消息。
  • 我可能错过了
  • 没问题。接受默示的道歉。
  • @Nelson :感谢您的指导;我会调查的。

标签: c# wcf service ipc desktop-application


【解决方案1】:

您需要使用 Socket 或 NamedPipe。通常,NamedPipe 是首选,因为它不会触发一些监控环回接口的限制性防火墙。

Example of Named Pipes

【讨论】:

  • 我确实决定使用命名管道。我发现了一些如此愚蠢的证据,即使我不应该把它搞砸tech.pro/tutorial/633/…
【解决方案2】:

编写一个WCF服务并在Web配置中配置一个密钥(指定WCF服务的用户名和密码)。从windows服务传递相同的密钥并对其进行身份验证,一旦身份验证成功,下载文件

例如: http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP

【讨论】:

    猜你喜欢
    • 2011-12-09
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多