我有一个 WCF 服务(基于 SOAP)在调用某些 Web 方法时开始遇到以下异常:
System.Xml.XmlException:读取 XML 数据时已超出最大可命名字符计数配额 (16384)。nametable 是一种数据结构,用于存储在 XML 处理过程中遇到的字符串 - 具有不重复元素名称、属性名称和属性值的长 XML 文档可能会触发此配额。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxNameTableCharCount 属性来增加此配额。第 1 行,位置 4221。在 System.Xml.XmlExceptionHelper.ThrowXmlException
虽然我们已经通过增加服务和客户端配置中的配额来解决此问题,但在我们开始遇到问题之前和应用配额增加之后,我发现消息响应没有任何差异。
我的问题是:
名称表是如何工作的?拥有最大值的名称表意味着什么?
有没有什么东西可以解释为什么我们在不改变服务和测试用例的情况下开始遇到这个异常?虽然我们添加了一些方法,但我不确定这是否是一个很好的解释,因为这些 Web 方法没有被调用。
关于调试名称表的任何建议并查看导致溢出的原因?
谢谢