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值设大即可。

  • 相关阅读:
    src和href属性的区别
    cookie, sessionStorage和localStorage的区别
    C# base64 转 byte[]
    C# 中字符串string和字节数组byte[]的转换
    C#获取当前路径的七种方法 【转载】
    C# 读取大文件 (可以读取3GB大小的txt文件)
    伪装文件到图片工具
    nmap命令扫描存活主机
    .deb文件如何安装,Ubuntu下deb安装方法图文详解
    kali修改更新源及更新
  • 原文地址:https://www.cnblogs.com/snowsky/p/1913601.html
Copyright © 2011-2022 走看看