查看当前打开的netNamedPipe频道?

时间:2011-09-22 20:21:35

标签: c# wcf viewer netnamedpipebinding

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

这类似于网络连接的netstat工具,但是对于netNamedPipes而言。

3 个答案:

答案 0 :(得分:0)

您可以使用Process Explorer查看进程已打开的管道:

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

答案 1 :(得分:0)

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

您可以使用Process Explorer查找进程所持有的命名管道对象的句柄,但这不会真正回答您的问题。要识别为WCF NetNamedPipeBinding渠道创建的管道,您需要知道要查找的内容。 WCF管道将在其名称中包含GUID,如下所示:

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

请参阅here for more on this

但是,句柄存在的事实本身告诉您有关通道状态的任何信息。管道连接有一个WCF池机制,所以即使通道正确关闭,也不能保证管道连接本身已被删除并释放句柄(尽管如果你看到一个进程逐渐获得越来越多的句柄,会建议频道清理可能存在问题。)

如果您想确认正在及时清理频道,我建议您在详细模式下启用WCF跟踪:这将告诉您具体情况。

答案 2 :(得分:0)

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

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