在 WCF 中处理巨大请求的最佳方式

本文关键字:最佳 方式 请求 巨大 WCF 处理 | 更新日期: 2023-09-27 17:56:41

WCF 服务处理大型请求(如一次处理 10k 个请求)的最佳方法。请指教。

编辑:

让我澄清一下,我有大约 10k 个通过以太网连接的硬件设备。现在我必须从设备进行通信。那么在 WCF 中处理这种情况的最佳方法是什么?

在 WCF 中处理巨大请求的最佳方式

取决于问题是什么以及内容是什么。这也取决于它是 10k 的传输(在快速连接上应该不会花费很长时间)还是结果的创建。

假设它是数据传输。

压缩

您可以尝试启用 GZip 压缩(WCF 压缩)以查看这是否会加快速度。请注意,执行实际压缩和解压缩会产生一些开销。

不确定这是否会加快速度(WCF 流式处理)。

批量提取

如果可能的话,你可以以块的形式获取数据,然后在客户端上启动多个线程/任务来检索不同的数据块,然后在所有线程完成后将它们放在一起。如果问题实际上是数据创建,这也可以加快速度。

如果要处理巨大的请求,请将数据作为请求。

为此,您需要更改读取器配额。因为默认情况下 WCF 仅获取 8192 个字符。因此,您需要更改读取器配额。

例:

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />