在终端服务上运行的两个.Net应用程序之间进行通信

时间:2014-05-19 05:28:28

标签: .net wcf interop outlook-addin

我在.NET中开发了一个内部ERP,并且正在开发Outlook Add On。我需要从我的Outlook添加消息添加到我已经运行的ERP实例以打开某个文件。在同一台服务器上有许多ERP实例(每个用户使用终端服务1个),因此无法使用WCF。

我希望添加outlook以向用户会话上运行的ERP实例发送消息。这可能与WCF有关吗?或者我可以使用其他什么方法?

1 个答案:

答案 0 :(得分:0)

您可以使用Window Terminal Services api获取会话ID以包含在您的uri中。 例如, [System.Runtime.InteropServices.DllImport(" wtsapi32.dll&#34)]         内部静态外部bool WTSQuerySessionInformation(             System.IntPtr hServer,int sessionId,WTS_INFO_CLASS wtsInfoClass,out System.IntPtr ppBuffer,out uint pBytesReturned);

hServer = IntPtr.Zero 将使用本地服务器(通常是需要的,除非您远程管理客户端会话) sessionId可以作为-1(WTS_CURRENT_SESSION)传入,以便在您从会话内部调用时获取当前会话详细信息。

我正在尝试完全相同(单个服务,每个会话1个客户端)但我遇到了一个问题,即当客户端会话断开连接时,命名管道监听器似乎正在关闭。