我有一个Web服务,它在字符串中为表(为了优化目的)返回HTML。我谨慎的一件事是我允许在C#中放入字符串变量的数据限制,以及任何其他可能的限制或警告?
我在网上论坛上看到字符串非常适应,你可以在其中提取高达1GB的数据(这当然就足够了)。有什么输入吗?
答案 0 :(得分:3)
字符串 - 或任何其他对象 - 在 Microsoft CLR 中最大可达2GB。 (这只是一个实现细节,而不是指定的标准。其他实现可能有不同的限制。)
由于字符串是UTF-16,每个字符需要两个字节,这意味着一个字符串最多可以包含1个千兆字符。
答案 1 :(得分:2)
答案 2 :(得分:2)
根据您通过http发送的有效负载的大小(假设您的远程服务使用此绑定),您可能希望考虑将整个字符串分解为服务器上的较小有效负载,然后再通过网络发送,然后重新组装它在客户端。
如果您应该调查,您应该注意的一件事是Web服务使用的超时值,以及它是否适合返回数据所花费的时间。
正如其他答案在理论上对字符串的限制所说的1gb,但实际上这是用户模式内存绑定。因此,如果您的应用程序可以访问2Gb的用户模式地址空间,那么您可以继续使用它,直到它用完为止。请注意,这不是物理RAM,而是可用的“每个应用程序”用户模式内存。