zoukankan      html  css  js  c++  java
  • 解决WCF传输大数据量时出错并提示:远程主机强迫关闭了一个现有的连接

    最近将手头的一个多数据库程序采用WCF封装了一下,解决安全问题及多种客户端登陆问题。但在实际运行中 ,发现数据量少时正常访问,数据量大时,就出错,提示:远程主机强迫关闭了一个现有的连接,很是郁闷。

    经查,出错的一个数据库(已经ORM)有50多个字段,基本上数据量为1200多条时,就会出错。

    经多次Google,辛苦万分,终于解决此问题,现将解决方法留下,以备用。

    首先应将MaxReceivedMessageSize值设大,如:

    <basicHttpBinding>
    <binding name="basicBinding" maxReceivedMessageSize="2147483647"></binding>
    </basicHttpBinding>

    其次,应该将MaxItemsInObjectGraph值设大,如:

    代码
    <behavior name="bcf">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="false" /> <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
    </serviceBehaviors>

    以上为服务器端设置,服务器端和客户端均应设大,客户端设置如下:

    代码
    <behaviors>
    <endpointBehaviors>
    <behavior name="bhc">
    <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
    </endpointBehaviors>
    </behaviors>
    <basicHttpBinding>
       
    <binding name="basicBinding" maxReceivedMessageSize="2147483647"></binding>
     
    </basicHttpBinding>

     至此基本已经OK,如果再有问题,可将maxBufferSize、receiveTimeout值设大即可。

  • 相关阅读:
    线性表(List)
    LUA ipairs遍历的问题
    C#预编译的问题
    Resources与StreamingAssets文件夹的区别
    LUA表与函数的深入理解
    LUA 删除元素的问题
    SVN版本回退
    C# MemoryStream先写后读的奇怪现象
    LUA表 pairs, ipairs输出顺序问题
    LUA table.sort的问题,数组与表的区别
  • 原文地址:https://www.cnblogs.com/snowsky/p/1913601.html
Copyright © 2011-2022 走看看