我正在使用命名管道在多个不同的应用程序之间进行通信。我有两个命名的管道主机,试图在不同的地址上监听。
如果我自己启动任一应用程序,它将运行。当我运行第二个应用程序时,它将抛出异常,并告诉我该地址已在使用中。
System.ServiceModel.AddressAlreadyInUseException: 'Cannot listen on pipe name
'net.pipe://dfb679124c82453888842928c37c6dae/' because another pipe endpoint is
already listening on that name.'
这两个服务没有使用相同的地址。
我什至使用以下代码设置了其中一项服务:
Host = new ServiceHost(
this,
new Uri[]
{
new Uri("net.pipe://"+Guid.NewGuid().ToString("N"))
});
var binding = new NetNamedPipeBinding();
Host.AddServiceEndpoint(typeof(IService),
binding, Guid.NewGuid().ToString());
在这段代码中,我在创建服务时生成了一个随机地址,但仍会抛出AddressAlreadyInUseException。
我没有使用任何配置配置来设置命名管道,一切都是基于代码的。
我在做什么错?