如何解决Csharp 命名管道服务器连接问题
我在远程计算机上有一个服务器,当我连接到管道时,它不会让我连接,直到我在服务器端重新启动计算机。随机可能是几周后。我将 max 实例属性放在服务器端。有任何想法吗?我还检查了之前的连接是否已关闭,并且似乎是因为我在客户端显示了实例数。下面是服务器端使用的代码。
public void ProcessNextClientServiceApp()
{
ps = new PipeSecurity();
ps.AddAccessRule(new PipeAccessRule("Users",PipeAccessRights.ReadWrite | PipeAccessRights.CreateNewInstance,AccessControlType.Allow));
ps.AddAccessRule(new PipeAccessRule("CREATOR OWNER",PipeAccessRights.FullControl,AccessControlType.Allow));
ps.AddAccessRule(new PipeAccessRule("SYSTEM",AccessControlType.Allow));
pipeStream = new NamedPipeServerStream(PipeName,PipeDirection.InOut,NamedPipeServerStream.MaxAllowedServerInstances,PipeTransmissionMode.Message,PipeOptions.None,1024,ps);
Console.WriteLine("Waiting...");
pipeStream.WaitForConnection();
PassClient(pipeStream);
}
public void PassClient(NamedPipeServerStream pipeStream)
{
var thread = new Thread(() =>
{
while (pipeStream.IsConnected){}
CloseNamedPipe();
});
thread.IsBackground = true;
thread.Start();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。