问题描述
我在以下方面有点挣扎。我创建了一个 WCF 服务器,如:
new ServiceEndpoint(ContractDescription.GetContract(typeof(IMyService)),new NetNamedPipeBinding(),new EndpointAddress("net.pipe://localhost/MyService"));
在 Windows Server 操作系统上,第一个用户运行代码并因此启动服务器。然后第二个用户登录并运行相同的代码。据我了解命名管道的文档,不可能在同一台机器上创建具有相同名称的命名管道。因此,根据文档,应该引发异常。但事实并非如此。第二个用户执行代码并能够在同一台机器上使用相同的端点地址启动第二个服务器。我是否误解了文档?
解决方法
一个基地址只能被一台计算机上的一个应用程序使用。
但是如果不同的用户登录到同一个 Windows Server,每个用户都会遇到一个唯一的 Windows 计算会话。你可以想象每个用户登录自己的电脑,这些用户之间不会互相干扰。
有关“MultiPoint 服务”的详细信息,请参阅此 link。