2

没有人正确回答我或使用官方资源来回答这个问题。我有一个服务器和许多模块。每个模块将创建一个命名管道,服务器将为每个模块创建一个命名管道。我需要知道我可以同时拥有多少个命名管道。

我不打算将它们像 10 个客户端连接到 1 个服务器,不。我想始终将 1 个客户端连接到 1 个服务器,但是我可以制作多少个这样的管道?

请注意,我在 C# 中使用 WCF。

4

2 回答 2

4

在 Windows 中创建的每个命名管道都使用一些系统资源,这意味着可以创建的管道数量存在实际限制。看:

每次创建命名管道时,系统都会使用非分页池创建入站和/或出站缓冲区,这是内核使用的物理内存。您可以创建的管道实例(以及线程和进程等对象)的数量受可用的非分页池的限制。

确切的数字限制将取决于您的系统,但如果不是数千,它可能至少在数百个数量级。

当使用 WCF 命名管道绑定创建管道时,由于此绑定发布有关正在使用的管道的元数据的方式,您只能为每个基地址创建一个管道。因此,最好使用绝对 URI 地址而不是基地址 + 相对地址来定义 WCF 端点。如果你这样做,并设计一个合理的方案来为每个端点创建一个唯一的绝对地址,那么我知道你可以创建的 WCF 端点的数量没有固定的限制。

任何特定系统的实际实际限制只能凭经验发现。如果您的目标是拥有几十个端点,我猜您将能够轻松地实现这一目标。如果您希望有数千个并发操作,您可以发挥系统资源的实际限制。只有测试才能确定这一点。

于 2013-08-07T08:21:12.737 回答
0

首先我想告诉你,你应该正确解释这个问题,否则没有人会在这里帮助你。解释您遇到的问题在哪里,并向我们展示一些代码。

根据您的解释,我发现您想要的是: 可以连接到命名管道的客户端数量

于 2013-08-05T11:25:52.717 回答