不同用户会话中 Windows 服务和应用程序之间的通信

Posted

技术标签:

【中文标题】不同用户会话中 Windows 服务和应用程序之间的通信【英文标题】:Communication between Windows service and applications in different user sessions 【发布时间】:2009-02-19 13:06:41 【问题描述】:

我有以下情况:

具有多个用户会话的 Windows Server 环境。

Windows 服务正在侦听已知端口。

自动启动的每个用户会话中的托盘应用程序。

Silverlight (SL) 应用程序正在浏览器中运行,并使用套接字和预定义端口与 Windows 服务通信。

我的目标如下:用户与 SL 应用程序交互,SL 应用程序使用套接字与 Windows 服务通信,然后 Windows 服务应与位于同一用户会话中的适当托盘应用程序通信,例如发起调用的浏览器。

Windows 服务和托盘应用程序之间的通信计划使用命名管道来完成。

问题:如何定义/传输命名管道的名称到 Windows 服务以建立正确的(Windows 服务 -> 正确用户会话中的托盘应用程序)连接?

【问题讨论】:

【参考方案1】:

我没有找到所描述问题的确切解决方案。但是可以使用自定义协议概念。

SL 应用程序生成自定义协议链接,注册应用程序在用户会话中处理此类链接。之后,此类应用程序可以与正在侦听已知端口的 Windows 服务建立双向通信。

【讨论】:

以上是关于不同用户会话中 Windows 服务和应用程序之间的通信的主要内容,如果未能解决你的问题,请参考以下文章

您如何在 Windows Vista 会话 0 和桌面之间进行通信?

Windows之会话ID

与 windows 服务共享 asp.net mvc 会话

在不同服务器上的 ReactJS 和 WIX Web 应用程序之间共享会话

在两个不同的 Web 浏览器之间共享会话

在两个烧瓶服务器之间共享会话