我正在努力获得一个.NET(
不是
通过网络进行通信的命名管道。这个
MSDN documentation
意味着这是可能的,不是微不足道的。但是我的代码:
using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(servername, "myPipe", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.Impersonation))
…当servername=“localhost”和管道服务器位于同一个框中时,效果很好。但是如果它是另一台机器——不管我是否让servername成为IP地址、DNS名称、netbios名称、unc路径等等——意味着管道永远不会连接。它实际上不会失败,pipeclient.connect()就在那里。
在不同的论坛、博客和网站上有很多不同的和相互冲突的帖子。任何人都能把记录设置得笔直并告诉我:如何让命名管道客户机从一台计算机上的一个C应用程序连接到另一台计算机上运行的命名管道服务器?