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

  • 相关阅读:
    剑指offer-整数中1出现的次数
    数据流中的中位数
    二叉搜索树的后序遍历序列
    Java 线程阻塞和唤醒
    Java 线程池
    Python哈希表和解析式
    Python线性数据结构
    python 基础知识
    pyenv虚拟环境管理python多版本和软件库
    Paramiko的SSH和SFTP使用
  • 原文地址:https://www.cnblogs.com/snowsky/p/1913601.html
Copyright © 2020-2023  润新知