C# 什么是;已超过服务器实例的最大数量";什么意思?

C# 什么是;已超过服务器实例的最大数量";什么意思?,c#,.net,pipe,named-pipes,namedpipeserverstream,C#,.net,Pipe,Named Pipes,Namedpipeserverstream,System.IO.Pipes.NamedPipeServerStream类引发IOException,文档中说已超过最大服务器实例数。这个信息对我来说不是很清楚。有人能用我能理解的语言解释一下吗?这是否意味着相同的代码由两个不同的进程或类似的程序执行?如果这种情况很少发生,我怎么能避免呢 我正在使用以下构造函数: int maxNumberServerInstance = 1; new NamedPipeServerStream(name, PipeDirection.InOut, maxNu

System.IO.Pipes.NamedPipeServerStream类引发IOException,文档中说已超过最大服务器实例数。这个信息对我来说不是很清楚。有人能用我能理解的语言解释一下吗?这是否意味着相同的代码由两个不同的进程或类似的程序执行?如果这种情况很少发生,我怎么能避免呢

我正在使用以下构造函数:

int maxNumberServerInstance = 1;
new NamedPipeServerStream(name, PipeDirection.InOut, maxNumberServerInstance , PipeTransmissionMode.Message, PipeOptions.None, bufferSize, bufferSize, pipeSecurity);

我得到IOException。

让我们访问文档

例外情况

IOException
已超过服务器实例的最大数量

表示系统可以访问的最大服务器实例数 资源允许

备注

创建服务器时使用MaxAllowedServerInstances NamedPipeServerStream对象以设置服务器的最大数量 系统资源允许的实例

简而言之,错误告诉您已创建了最大数量的实例

如果只使用了名称为的默认构造函数,则会得到此结果,此外,还会得到具有以下特征的管道:

  • InOut的默认管道方向

  • 共享相同名称的最大服务器实例数设置为1

  • 字节的PipeTransmissionMode值

  • PipeOptions值为“无”

  • 默认输入和输出缓冲区大小

  • 没有管道安全

  • HandleInheritability值为None

  • 没有指定其他PipeAccessRights

如果需要多个实例,您至少需要使用以下构造函数:

参数

  • 管道名称
    String

    • 管道的名称
  • 方向
    PipeDirection

    • 确定管道方向的枚举值之一
  • maxNumberOfServerInstances
    Int32

    • 共享相同名称的最大服务器实例数。可以为此值传递MaxAllowedServerInstances

最后,如果您遇到这个错误,并且您只有一个实例,那么您可能在如何创建它们方面有一个微妙的问题

请输入密码。。。因此,我们可以在完整的异常文本后看到您正在做什么,而不仅仅是类型名称和消息。您可以使用
Exception.ToString()
轻松获得它。这显示了实际抛出的方法以及导致该方法的调用堆栈。也发布代码。查看NamedPipeServerStream类的文档。请注意,它具有接受maxNumberOfServerInstances参数的构造函数。最大值。谢谢你的回答,我添加了我使用的构造函数。@BarışAkkurt好的,你打开的实例可能比你想象的要多