0

maxStringContentLength在将参数从 WCF 传递到 WCF 时,我已经用尽了我的能力。

没什么大不了的,我只会提高价值。但在我做之前我有一个问题:

是以位、字节、字符、字为单位的默认 8192 大小还是什么?!?!

我来过这里(http://msdn.microsoft.com/en-us/library/system.xml.xmldictionaryreaderquotas.maxstringcontentlength.aspx),但显然这是一个大秘密,应该没有人知道。

4

2 回答 2

4

它以字节为单位。默认值为 8K。

编辑添加
实际上,一个地方的文档说字符,所以字符可能是更正确的答案。但是,如果您正在处理正常的 255 个 ASCII 字符,则字节可以工作,因为一个字节 = 一个字符。

于 2011-06-30T23:15:29.430 回答
1

正如 Tim 所提到的,长度以字符为单位(它本质上是 string.Length 的结果)。要添加的另一件事 - 字节和字符之间的相关性实际上取决于所使用的编码。对于普通的“文本”XML,如果使用 UTF-8,每个字符可以用 1、2 或 3 个字节表示。如果您使用 UTF-16,则每个字符始终为 2 个字节。如果您使用二进制 XML(即,使用 BinaryMessageEncodingBindingElement),则内容中可能包含一些字典字符串,它们可以只占用几个字节,但它们可以扩展为大字符串值 - MaxStringContentLength 是其中之一配额可防止恶意客户端发送少量字节,从而在服务器中分配大量内存。

于 2011-07-01T05:22:31.160 回答