【问题标题】:.NET 3.5 (C#) Named pipes over network.NET 3.5 (C#) 网络上的命名管道
【发布时间】:2010-02-04 20:27:31
【问题描述】:

我正在努力让一个 .NET(不是 WCF)命名管道通过网络进行通信。 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# 应用程序连接到另一台机器上运行的命名管道服务器?

【问题讨论】:

  • 现在在网络上使用名称管道并不常见,这并不是说它们不起作用。

标签: c# .net networking pipe


【解决方案1】:

你在工作中这样做吗?公司防火墙或防病毒程序是否正在运行?检查开始栏上任务通知图标区域中的 Windows 事件日志和任何应用程序,以获取有关谁在阻止此操作的提示。

【讨论】:

  • 具体来说,验证端口 445(用于命名管道)在您尝试连接的计算机上打开。
  • 啊。不敢相信我已经这么愚蠢了。刚刚注意到我的开发环境虚拟机神秘地跳到了不同的 DHCP 范围,并且与目标服务器没有正确的通信。感谢您的回复,我现在要去拍自己的头了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
相关资源
最近更新 更多