我有一个用.NET开发的内部ERP,并且正在开发Outlook Add On。我需要从Outlook附加组件发送一条消息到已经运行的ERP实例,以打开某个文件。同一服务器上有许多ERP实例(每个用户使用终端服务1个),因此我无法使用WCF。
我希望Outlook能够向用户会话上运行的我的ERP实例发送一条消息。使用WCF可以做到吗?还是我可以使用其他什么方法?
您可以使用Window Terminal Services api获取会话ID,以将其包含在您的uri中。例如,[System.Runtime.InteropServices.DllImport(“ wtsapi32.dll”)]内部静态外部布尔值WTSQuerySessionInformation(System.IntPtr hServer,int sessionId,WTS_INFO_CLASS wtsInfoClass,System.IntPtr ppBuffer,uint pBytesReturned);
hServer = IntPtr.Zero将使用本地服务器(通常是需要的,除非您要远程管理客户端会话),如果从会话内部进行调用,则可以将sessionId传递为-1(WTS_CURRENT_SESSION)以获取当前会话详细信息。
我正在尝试做完全相同的操作(单个服务,每个会话1个客户端),但是遇到一个问题,即当客户端会话断开连接时,命名管道侦听器似乎正在关闭。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句