.NET3.5(C#)命名的网络管道
我正在努力获得一个名为pipe的.NET(而不是WCF)来通过网络进行通信。这意味着这是可能的,甚至是微不足道的。但我的代码是:.NET3.5(C#)命名的网络管道,c#,.net,networking,pipe,C#,.net,Networking,Pipe,我正在努力获得一个名为pipe的.NET(而不是WCF)来通过网络进行通信。这意味着这是可能的,甚至是微不足道的。但我的代码是: using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(servername, "myPipe", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.Impersonation)) 。。。当servername
using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(servername, "myPipe", PipeDirection.InOut, PipeOptions.None, TokenImpersonationLevel.Impersonation))
。。。当servername=“localhost”和管道服务器位于同一个框中时,效果非常好。但如果它是另一台机器——不管我是否将servername设置为IP地址、DNS名称、NetBIOS名称、UNC路径等——意味着管道永远不会连接。它实际上并没有失败,pipeClient.Connect()就在那里
在各种论坛、博客和网站上都有很多不同的、相互冲突的帖子。任何人都可以直截了当地告诉我:如何让命名管道客户端从一台机器上的一个C#应用程序连接到另一台机器上运行的命名管道服务器?你是在工作吗?公司防火墙或防病毒程序是否正在运行?检查windows事件日志和开始栏上“任务通知图标”区域中的任何应用程序,以获取有关谁阻止此操作的提示。具体而言,请验证您尝试连接到的计算机上的端口445(用于命名管道)是否打开。Arghh。真不敢相信我这么傻。刚刚注意到我的开发环境VM神秘地跳转到另一个DHCP范围,并且没有与目标服务器进行适当的通信。谢谢你的回复,我现在要打自己的头了。现在在网络上使用命名管道已经不常见了,这并不是说它们不起作用。