如何在Windows桌面服务和Windows桌面应用程序之间实现通信?

时间:2015-06-27 03:55:16

标签: c# wcf service ipc desktop-application

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

我需要这项服务才能回复"我已经开发出简单的托盘应用程序,以便在事情发生时通知它。像

这样的事情

用户登录信息是否正常?

内容是否开始下载?

内容是否已完成下载?

我已经在WCF上看过帖子了,但是,一眼看上去,WCF对我来说就像它只是为了绕过网络服务而设计的。这将是一个桌面服务,而不是一个Web服务,所以除非我的解释错误,我不认为WCF会为我工作吗?我的另类选择是什么? (或者,如果我误解了WCF,有人可以指点我一个简单的教程吗?)

2 个答案:

答案 0 :(得分:1)

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

Example of Named Pipes

答案 1 :(得分:0)

编写WCF服务并在Web配置中配置密钥(指定WCF服务的用户名和密码。从身份验证成功后,从Windows服务传递相同的密钥并对其进行身份验证,下载文件< / p>

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