【发布时间】:2011-01-08 06:06:29
【问题描述】:
我们有一个 .NET 程序,它使用 WCF 来监听来自另一个进程的通信。我们使用了命名管道。
ServiceHost host = new ServiceHost(
typeof(Something),
new Uri[]
{
new Uri("net.pipe://localhost")
});
host.AddServiceEndpoint(typeof(ISomething), new NetNamedPipeBinding(), "Something");
host.Open();
在安装第三方 .NET 程序之前,代码运行良好。现在打开失败并显示“无法侦听管道名称'net.pipe://localhost/',因为另一个管道端点已经在侦听该名称。”
我的假设是其他程序已经在使用命名管道。是否有解决方法或者计算机上的一个程序只能使用命名管道?我从其他问题中得到的印象是,您可以为管道设置“名称”,这样它就不会与其他进程发生冲突,您是如何做到的?
【问题讨论】:
-
可以使用来自SysInternals 的 Handle.exe 来找出当前正在使用您的命名管道的应用程序。命令“Handle.exe net.pipe:”。见Rodney Viana's post
标签: wcf named-pipes