我遇到了最大的名字字符计数配额问题,我在这里听了几个答案,它解决了一段时间的问题,但现在我遇到了同样的问题。
我的服务器端配置如下:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="GenericBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<dataContractSerializer maxItemsInObjectGraph="1000000" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="REMWCF.RemWCFSvc">
<endpoint address="" binding="netTcpBinding" contract="REMWCF.IRemWCFSvc" bindingConfiguration="GenericBinding" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9081/RemWCFSvc" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
我在devenv配置上也有相同的tcp绑定。
我是否达到了支持的合同限额?有没有办法关掉那个配额?
修改
错误讯息:
错误:无法从中获取元数据 net.tcp:// localhost:9081 / RemWCFSvc / mex如果这是一个Windows(R) 请访问您的Communication Foundation服务 检查您是否已在指定的位置启用元数据发布 地址。有关启用元数据发布的帮助,请参阅 MSDN文档在 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata交流 错误URI:net.tcp:// localhost:9081 / RemWCFSvc / mex元数据 包含无法解析的引用: '的net.tcp://本地主机:9081 / RemWCFSvc / MEX'。有一个错误 XML文档。最大名称字符数限额(16384) 读取XML数据时已超出。名称表是一个数据 用于存储XML处理期间遇到的字符串的结构 - 具有非重复元素名称,属性名称的长XML文档 和属性值可能会触发此配额。这个配额可能是 通过更改上的MaxNameTableCharCount属性来增加 创建XML阅读器时使用的XmlDictionaryReaderQuotas对象。
我在尝试运行WCF(托管在Windows服务应用程序中)时遇到了这个错误。
答案 0 :(得分:0)
这是正确的网络配置。您需要将metadataenabled设置为true,并且还没有定义行为名称。试试这个配置。
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="GenericBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="SilverlightWCFLargeDataApplication">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="SilverlightWCFLargeDataApplication">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="REMWCF.RemWCFSvc" behaviorConfiguration="SilverlightWCFLargeDataApplication">
<endpoint address="" behaviorConfiguration="SilverlightWCFLargeDataApplication" binding="netTcpBinding" contract="REMWCF.IRemWCFSvc" bindingConfiguration="GenericBinding" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9081/RemWCFSvc" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>