我有一个应用程序可以在同一个盒子上的不同用户会话下同时激活.它由客户端和服务器组成,两者都在交互式用户下运行,并通过命名管道通过WCF进行通信.
如果我创建一个正在侦听的WCF服务器,比如"net.pipe:// localhost/MyService"...服务器进程的两个实例在同一个用户会话下不能存在,但是WCF允许两个服务器使用相同的基址在不同的用户会话.
这是我的问题;
如果WCF不使用URI作为管道名称,客户端如何找到服务器?
WCF如何保持我的服务器的两个实例(在不同的用户会话下运行)不会相互干扰?(例如,用户会话'A'下的客户端始终在用户会话'A'下与服务器通信,而从不在用户会话'B'下运行服务器
提前致谢.
WCF 生成一个 GUID 并将其用作命名管道的名称。
URI 用于导出共享内存对象的位置。服务器实际上将使用要使用的命名管道的 GUID 创建该共享内存对象。客户端将读取共享内存对象以获得GUID。
该共享内存对象仅限于用户会话。不同的用户会话意味着不同的命名管道。
参考: