System.IO.Pipes.NamedPipeServerStream类抛出IOException异常和文档说服务器实例的最大数量已超出。这个消息对我来说并不很清楚。有人可以解释它在我而言能理解吗?这是否意味着相同的代码是由两种不同的工艺或类似的东西执行?如何避免它,如果它很少发生?
我使用下面的构造函数:
int maxNumberServerInstance = 1;
new NamedPipeServerStream(name, PipeDirection.InOut, maxNumberServerInstance , PipeTransmissionMode.Message, PipeOptions.None, bufferSize, bufferSize, pipeSecurity);
我得到IOException异常。
让我们去的文档。
例外
IOException
服务器实例的最大数量已超出。
NamedPipeServerStream.MaxAllowedServerInstances Field
表示服务器实例,系统资源允许的最大数量。
备注
创建NamedPipeServerStream对象设置服务器实例,系统资源允许的最大数量时使用MaxAllowedServerInstances。
总之错误是告诉你的实例的最大数量已创建。
你会得到这个,如果你使用了默认的构造函数只有名字,此外,您会得到一个管具有以下特点:
- 的InOut的默认管方向。
- 共享相同的名称设置为1的服务器实例的最大数目。
- 字节的PipeTransmissionMode值。
- 无的PipeOptions值。
- 默认输入和输出缓冲区的大小。
- 无管安全。
- 无的HandleInheritability值。
- 没有指定的其他PipeAccessRights。
您至少会想,如果你需要一个以上的实例使用下面的构造函数:
NamedPipeServerStream(String, PipeDirection, Int32)
参数
- pipeName
String
该管道的名称。- 方向
PipeDirection
一个用于确定管道的方向上的枚举值。- maxNumberOfServerInstances
Int32
共享同一名称的服务器实例的最大数目。你可以通过MaxAllowedServerInstances该值。
最后,如果你得到这个错误,你只有一个实例,你可能有你如何创建它们一个微妙的问题。