无法使用命名管道连接服务器和客户端

时间:2013-02-13 16:30:09

标签: c# named-pipes

我在命名管道的interenet上阅读了很多例子。出于某种原因,我无法使其发挥作用。无论如何,这是我的代码:

服务器

    static void Main(string[] args)
    {
        NamedPipeServerStream server = new NamedPipeServerStream("1234");
        server.WaitForConnection();

        Console.Beep(); // connection successful! 
    }

客户端:

    static void Main(string[] args)
    {                    
        NamedPipeClientStream client = new NamedPipeClientStream("1234");
        client.Connect();

        Console.WriteLine("Connected!");
        Console.Read();
    }

我有两个不同的可执行文件。我首先启动服务器程序然后启动客户端。为什么我无法连接?

1 个答案:

答案 0 :(得分:2)

一个可能的原因:您正在从两个不同的安全上下文启动进程(即一个“以管理员身份运行”而另一个以普通用户身份运行)。在这种情况下,如果没有在命名管道上设置安全性,则无法建立连接...

也可能存在具有此名称的现有命名管道(以某种方式或在另一个用户下孤立),但我希望在这种情况下至少有一个程序失败。考虑以防万一(或更好地使用其中一个Sysitnerals工具来查看是否已存在具有此名称的管道)重新启动您的计算机。