我在命名管道的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();
}
我有两个不同的可执行文件。我首先启动服务器程序然后启动客户端。为什么我无法连接?
答案 0 :(得分:2)
一个可能的原因:您正在从两个不同的安全上下文启动进程(即一个“以管理员身份运行”而另一个以普通用户身份运行)。在这种情况下,如果没有在命名管道上设置安全性,则无法建立连接...
也可能存在具有此名称的现有命名管道(以某种方式或在另一个用户下孤立),但我希望在这种情况下至少有一个程序失败。考虑以防万一(或更好地使用其中一个Sysitnerals工具来查看是否已存在具有此名称的管道)重新启动您的计算机。