wcf问题:超出最大名称表字符计数配额 (16384)。
下载“http://127.0.0.1:9001/Service1/mex”时出错。
请求因 HTTP 状态 400 失败: Bad Request。
元数据包含无法解析的引用:“http://127.0.0.1:9001/Service1/mex”。
XML 文档(1, 105859)中有错误。
读取 XML 数据时,超出最大名称表字符计数配额 (16384)。名称表是用于存储在处理 XML 时所遇到的字符串的数据结构 - 具有非重复元素、属性名称和属性值的长 XML 文档可能会触发此配额。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxNameTableCharCount 属性,可增加此配额。 第 1 行,位置为 105859。
一个contrat有很多的OperationContract的时候,客户端添加服务引用的时候就会出现这个问题。
我发现服务器端MaxNameTableCharCount 这个属性,客户端的bind节点中有的,但是bind节点是添加服务之后自动生成的啊,我服务无法添加,也就无法生成这个属性。就算我服务器端先少几个OperationContract,先添加成功,然后将MaxNameTableCharCount="16384"改成MaxNameTableCharCount="65535",可是当我服务器多加几个OperationContract的时候,更新也不成功。我现在解决办法是再写一个Contract类。可是貌似这样不是办法。要怎么办呢?
以下是服务器端的app.config
<services>
<service name="SQS.Demo.Server.Ticket" behaviorConfiguration="TicketBehavior">
<endpoint address="TicketService" binding="netTcpBinding" bindingConfiguration="TicketBindingConfiguration" contract="SQS.Demo.Contract.ITicket" />
<endpoint address="mex" contract="IMetadataExchange" binding="mexTcpBinding" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://127.0.0.1:9001"/>
</baseAddresses>
</host>
</service>
------解决方案--------------------
哥们, 不知你解决了没有?没有的话请看http://hi.baidu.com/mark58/blog/item/d0fd517b7280eff80ad1879a.html
试试 ,OK了记得给分哦