c# - “已超出服务器实例的最大数量”是什么意思?
问题描述
System.IO.Pipes.NamedPipeServerStream 类抛出 IOException 并且文档说The maximum number of server instances has been exceeded。这个消息对我来说不是很清楚。有人可以用我能理解的方式解释吗?这是否意味着相同的代码正在由两个不同的进程或类似的东西执行?如果它很少发生,我该如何避免它?
我正在使用以下构造函数:
int maxNumberServerInstance = 1;
new NamedPipeServerStream(name, PipeDirection.InOut, maxNumberServerInstance , PipeTransmissionMode.Message, PipeOptions.None, bufferSize, bufferSize, pipeSecurity);
我得到 IOException。
解决方案
让我们访问文档。
例外
IOException
已超过服务器实例的最大数量。
NamedPipeServerStream.MaxAllowedServerInstances 字段
表示系统资源允许的最大服务器实例数。
评论
创建 NamedPipeServerStream 对象时使用 MaxAllowedServerInstances 设置系统资源允许的最大服务器实例数。
简而言之,错误告诉您已创建最大数量的实例。
如果您只使用名称的默认构造函数,您将获得此信息,此外,您将获得具有以下特征的管道:
InOut 的默认管道方向。
共享相同名称的最大服务器实例数设置为 1。
字节的 PipeTransmissionMode 值。
无的 PipeOptions 值。
默认输入和输出缓冲区大小。
没有管道安全。
无的 HandleInheritability 值。
没有指定额外的 PipeAccessRights。
如果您需要多个实例,则至少需要使用以下构造函数:
NamedPipeServerStream(String, PipeDirection, Int32)
参数
管道名称
String
- 管道的名称。
方向
PipeDirection
- 确定管道方向的枚举值之一。
maxNumberOfServerInstances
Int32
- 共享相同名称的服务器实例的最大数量。您可以为此值传递 MaxAllowedServerInstances。
最后,如果您收到此错误并且您只有一个实例,那么您可能对如何创建它们有一个微妙的问题。
推荐阅读
- python - Python:如何使用 ffmpeg 读取视频(视频文件或 rtsp)并使用 OpenCV 显示它们?
- javascript - 如何修复 React 中的 'eslint(no-unused-vars)' 错误
- azure - 无法验证 - 带有 Azure Active Directory (OpenIdConnect) 的 Azure Web 应用
- python - Python PyPdf 2:返回一些 pdf 的空结果
- docker - 如何从 Docker 中的 shell 脚本调用函数?
- glue42 - 命令式模式优势
- reactjs - 如何修复 typeError:无法读取未定义的属性“地图”
- javascript - 如何使用 JavaScript 让一个元素在我的页面上多次出现?
- sas - SAS中的加权交叉表
- python - 如何使用不可微分的损失函数?