异常详细信息: System.Xml.XmlException: 根级别上的数据无效。 第 1 行,位置 1。


今天在调用WCF服务的时候出现了这个异常提示, “System.Xml.XmlException: 根级别上的数据无效。 第 1 行,位置 1。”。具体的现象是在数据库表的某列,类型为nvarchar(max),现在需要从表中读出数据和写入数据。

但是一提交数据就抛异常,从异常信息上看和XML有关,但是调用方和服务提供方都没有用到XML的地方,后来发现数据量小的时候就可以提交,说明和服务代码无关,应该是数据量配置有问题。后来又发现,获取时没有问题,只是在提交时出错。那么应该是服务器端的配置出错。

原始配置如下:

<system.serviceModel>
    <services>      
      <service name="EgoalTech.Remittance.ManagerService.RemittanceBasicDataService">
        <endpoint address="" binding="customBinding" bindingConfiguration="SslCustomBinding"
          contract="EgoalTech.Remittance.ManagerService.IRemittanceBasicDataService" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
          contract="IMetadataExchange" />
      </service>     
      </service>
    </services>
    <bindings>
      <customBinding>
        <binding name="SslCustomBinding">
          <binaryMessageEncoding maxWritePoolSize="2147483647" maxReadPoolSize="2147483647" maxSessionSize="2147483647"/>
          <httpTransport maxReceivedMessageSize="2147483647" />
        </binding>
      </customBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior>          
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

已经将所有的Size都设为的2g,感觉应该能够接受大数据量了,可惜出错了。应该是某项配置依然使用了默认值,经过多次测试,最后终于发现是对

binaryMessageEncoding 的配置有遗漏,应该如下所示:

<bindings>
      <customBinding>
        <binding name="SslCustomBinding" >
          <binaryMessageEncoding>
            <readerQuotas maxStringContentLength="2147483647"/>
          </binaryMessageEncoding>
          <httpTransport maxReceivedMessageSize="2147483647"/>
        </binding>
      </customBinding>
    </bindings>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值