zoukankan      html  css  js  c++  java
  • WCF 传递数据量大时的报错处理

    一、报错信息
    (1)接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。
        这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志。

    (2)格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: SearchResult。InnerException 消息是“对象图中可以序列化或反序列  化的项目数目上限为“65536”。请更改对象图或增加 MaxItemsInObjectGraph 的配额。 ”。有关详细信息,请参阅 InnerException。

    (3) 超过59秒的报错提示

    二、解决方案

    1.服务端 解决报错(1)
    <system.serviceModel>
    <behaviors>
    <serviceBehaviors>
    <behavior> 节点下增加如下配置节点

    <dataContractSerializer maxItemsInObjectGraph="2147483647" />


    2.客户端 解决报错(2)
    <system.serviceModel>下增加如下配置节点
    <behaviors>
    <endpointBehaviors>
    <behavior >
    <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
    </endpointBehaviors>
    </behaviors>

    3.超时报错处理。以下配置中默认为00:01:00 即1分钟。数据量大是超过59秒会报错。因此改为10分钟
    closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"

    客户端完整配置:

    <system.serviceModel>
    <bindings>
    <basicHttpBinding>
    <binding name="BasicHttpBinding_IServiceDataSync" closeTimeout="00:10:00"
    openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
    maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
    useDefaultWebProxy="true">
    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
    maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    <security mode="None">
    <transport clientCredentialType="None" proxyCredentialType="None"
    realm="" />
    <message clientCredentialType="UserName" algorithmSuite="Default" />
    </security>
    </binding>
    </basicHttpBinding>
    </bindings>
    <client>
    <endpoint address="http://192.168.0.230/WcfDataSync/ServiceDataSync.svc"
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IServiceDataSync"
    contract="ServiceDataSync.IServiceDataSync" name="BasicHttpBinding_IServiceDataSync" />
    </client>

    <behaviors>
    <endpointBehaviors>
    <behavior >
    <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
    </endpointBehaviors>
    </behaviors>

    </system.serviceModel>

  • 相关阅读:
    Codeforces 627A XOR Equation(思路)
    Codeforces 633C Spy Syndrome 2(DP + Trie树)
    BZOJ 1982 [Spoj 2021]Moving Pebbles(博弈论)
    BZOJ 3676 [Apio2014]回文串(回文树)
    BZOJ 3790 神奇项链(manacher+DP+树状数组)
    Codeforces 449D Jzzhu and Numbers(高维前缀和)
    SPOJ Time Limit Exceeded(高维前缀和)
    BZOJ 4031 [HEOI2015]小Z的房间(Matrix-Tree定理)
    BZOJ 3809 Gty的二逼妹子序列(莫队+分块)
    BZOJ 3544 [ONTAK2010]Creative Accounting(set)
  • 原文地址:https://www.cnblogs.com/Extreme/p/3645681.html
Copyright © 2011-2022 走看看