查看当前打开的netNamedPipe通道

本文关键字:netNamedPipe 通道 | 更新日期: 2023-09-27 18:09:18

是否有任何方法可以确定哪些netNamedpipe通道当前打开?这将帮助我调试我的WCF客户端/服务器,并确保我正确关闭我的通道。

这类似于用于网络连接的netstat工具,但用于netNamedPipes。

查看当前打开的netNamedPipe通道

据我所知,没有工具可以做到这一点。

你可以使用进程资源管理器来查找进程持有的命名管道对象的句柄,但这并不能真正回答你的问题。要识别为WCF NetNamedPipeBinding通道创建的管道,你需要知道你在寻找什么。WCF管道将在其名称中包含GUID,看起来像这样:

''.'pipe'197ad019-6e5f-48cb-8f88-02ae11dfd8c0

请参阅此处查看更多信息。

然而,句柄存在的事实并没有本身告诉您关于通道状态的任何信息。有一个用于管道连接的WCF池机制,所以即使通道被正确关闭,也不能保证管道连接本身已经被丢弃,句柄被释放(尽管如果你看到一个进程逐渐获得越来越多的句柄,这可能表明通道清理有问题)。

如果你想确认通道正在被及时清理,我建议你在详细模式下启用WCF跟踪:这将告诉你到底发生了什么。

您可以使用进程资源管理器查看进程打开了哪些管道:

http://technet.microsoft.com/en-us/sysinternals/bb896653

SysInternals有一个名为PipeList的命令。我相信你可以在这里单独下载命令:

http://technet.microsoft.com/en-us/sysinternals/dd581625