none
契约过多,造成引用错误....如何解决 RRS feed

  • 问题

  • 元数据包含无法解析的引用:“net.tcp://localhost:8080/BusinessService/mex”。
    XML 文档中有错误。
    XML 文档中有错误。
    读取 XML 数据时,超出最大名称表字符计数配额 (16384)。名称表是用于存储在处理 XML 时所遇到的字符串的数据结构 - 具有非重复元素、属性名称和属性值的长 XML 文档可能会触发此配额。通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxNameTableCharCount 属性,可增加此配额。
    如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

     

    我在客户端添加服务引用的时候..报上面的错误...

     

    服务端配置文件如下, <readerQuotas /> 所有属性设置最大值无效...
    Mex 无法解析是不是跟mexTcpBinding有关..mexTcpBinding不能设置 <readerQuotas />...谁知道怎么解决的  帮帮忙,谢谢...
    客户端 <readerQuotas />也设置了最大值

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.web>
        <compilation debug="true" />
      </system.web>
      <!-- 部署服务库项目时,必须将配置文件的内容添加到
      主机的 app.config 文件中。System.Configuration 不支持库的配置文件。-->
      <system.serviceModel>
        <bindings>
          <netTcpBinding>
            <binding name="BusinessTcpBinding" maxBufferPoolSize="2147483647"
              maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
                maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
              <security mode="None">
                <!--<transport>
                  <extendedProtectionPolicy policyEnforcement="Never" />
                </transport>-->
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
        <services>
          <service behaviorConfiguration="Service.BusinessServiceBehavior"
            name="Service.BusinessService">
            <endpoint address="" binding="netTcpBinding" bindingConfiguration="BusinessTcpBinding"
              contract="Contract.Service.IBusiness">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="net.tcp://localhost:8080/BusinessService/" />
              </baseAddresses>
            </host>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="Service.BusinessServiceBehavior">
              <serviceMetadata httpGetEnabled="false" />
              <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>
    </configuration>

    2010年4月12日 3:02

答案

全部回复