读取 XML 数据时已超出最大字符串内容长度配额 (8192)

  • 本文关键字:8192 字符串 数据 XML 读取 wcf
  • 更新时间 :
  • 英文 :


我正在尝试调用读取XML字符串的WCF服务。我收到此错误"格式化程序错误最大字符串内容长度配额读取 XML 数据时已超出 (8192)。下面是服务 web.config 文件

<?xml version="1.0"?>
<configuration>
<system.web>
    <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled="true"/>
                <serviceDebug     includeExceptionDetailInFaults="true"/>
                <dataContractSerializer maxItemsInObjectGraph="2147483647" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IOrderCreateService"
                     maxReceivedMessageSize="2147483647"
                     openTimeout="00:1:00"
                     closeTimeout="00:1:00"
                     sendTimeout="00:25:00"
                     receiveTimeout="00:25:00">
            </binding>
        <binding name="HandleLargeMessage" maxReceivedMessageSize="2147483647">
            <readerQuotas maxDepth="2147483647"
               maxStringContentLength="2147483647"
               maxArrayLength="2147483647"
               maxBytesPerRead="2147483647"
               maxNameTableCharCount="2147483647" />
        </binding>
        </basicHttpBinding>
    </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <services>
        <!-- beta.telagententerprise.com/WcfServices-->
        <service name="OrderCreateService.OrderCreateService">
            <endpoint name="MessageServiceEndpoint"
                      address="http://localhost:2966/OrderCreateService.svc"
                      binding="basicHttpBinding"
                      bindingConfiguration="HandleLargeMessage"
                      contract="IOrderCreateService" />
        </service>
    </services>     
</system.serviceModel>

下面是客户端应用程序.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
    <behaviors>
    <serviceBehaviors>
        <behavior>
            <serviceMetadata httpGetEnabled="true"/>
            <serviceDebug includeExceptionDetailInFaults="true"/>
            <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
    </serviceBehaviors>
    </behaviors>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IOrderCreateService"
                     maxReceivedMessageSize="2147483647"
                     openTimeout="00:1:00"
                     closeTimeout="00:1:00"
                     sendTimeout="00:25:00"
                     receiveTimeout="00:25:00">
            </binding>
            <binding name="HandleLargeMessage" maxReceivedMessageSize="2147483647">
                <readerQuotas maxDepth="2147483647"
                   maxStringContentLength="2147483647"
                   maxArrayLength="2147483647"
                   maxBytesPerRead="2147483647"
                   maxNameTableCharCount="2147483647" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint name="MessageServiceEndpoint"
                      address="http://localhost:2966/OrderCreateService.svc"
                      binding="basicHttpBinding"
                      bindingConfiguration="HandleLargeMessage"
                      contract="OrderCreateService.IOrderCreateService" />

    </client>
</system.serviceModel>

我搜索了此错误,尝试了上面的代码,仍然收到8192错误。任何帮助都会很棒。谢谢S

服务器端配置 -->端点元素合约值不是完全限定的。应该OrderCreateService.IOrderCreateService

此外,如果在 IIS 上承载,则到服务的地址映射由 IIS 处理。

即使在客户端和服务器.config文件上设置maxStringContentLength = "2147483647"后,我也有同样的问题。在 Web 中尝试了许多建议后,通过匹配客户端和服务器项目(在 Visual Studio 2013 中的"项目属性/生成"选项卡/平台目标下)上的目标框架来修复此问题。

最新更新