![](/img/trans.png)
[英]“maximum number of errors has been exceeded” but no errors nor warnings listed
[英]What does "The maximum number of server instances has been exceeded" mean?
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 字段
表示系統資源允許的最大服務器實例數。
評論
在創建 NamedPipeServerStream 對象時使用 MaxAllowedServerInstances 來設置系統資源允許的最大服務器實例數。
簡而言之,錯誤告訴您已經創建了最大數量的實例。
如果您僅使用帶有名稱的默認構造函數,您將獲得此信息,此外,您還將獲得一個具有以下特征的管道:
InOut 的默認管道方向。
共享相同名稱的最大服務器實例數設置為 1。
Byte 的 PipeTransmissionMode 值。
無的 PipeOptions 值。
默認輸入和輸出緩沖區大小。
沒有管道安全。
None 的 HandleInheritability 值。
沒有指定額外的 PipeAccessRights。
如果需要多個實例,至少需要使用以下構造函數:
NamedPipeServerStream(String, PipeDirection, Int32)
參數
管道名稱
String
- 管道的名稱。
方向
PipeDirection
- 確定管道方向的枚舉值之一。
maxNumberOfServerInstances
Int32
- 共享相同名稱的服務器實例的最大數量。 您可以為此值傳遞 MaxAllowedServerInstances。
最后,如果您收到此錯誤並且您只有一個實例,則您的創建方式可能存在微妙的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.