【转】解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接...

开发中所用的数据需要通过WCF进行数据传输,结果就遇到了WCF大量传输问题 也就是提示System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接

网上解决方案都是千篇一律互相转发的,并且没有明确的解决方案或者按照,各个博客中的解决方案都没能解决这个问题。

为此我整整浪费了一天时间用来解决这个问题,而且用了最笨的办法一点点的尝试网上所查到的方案。对于精研WCF来说的这可能是一个小问题,但是对于仅仅了解wcf,一知半解的会很困惑。将解决方案贴出来希望能帮助到一样遇到此问题和没有深入研究过wcf的程序猿们快速解决这个问题.

 

首先网上所说的解决大数据量传输需要给修改客户端与服务端的配置属性
maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" 单位是字节数,最大为2G

 

服务端配置

    <bindings>
      <basicHttpBinding>
        <binding name="GEDemoServiceBinding" closeTimeout="00:05:00" openTimeout="00:05:00" sendTimeout="00:05:00"maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxDepth="32" />
        </binding>
      </basicHttpBinding>
    </bindings>

客户端配置

   <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IGEDemoService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>

 

但是这远远不够这只是修改了wcf传输通道的空间容量。

但是由于WCF传输时肯定会涉及到自定义对象的传输,因此服务端与客户端通过wcf传输时需要进行序列化因此需要修改dataContractSerializer配置属性

 

修改dataContractSerializer节点以后的配置

服务端配置

 <behavior name="GE_DemoService.GEDemoServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
   <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
        </behavior>

 

 

客户端配置

 

  <!--Service Configure-->   

    <endpoint address="http://localhost:10081/GEDemoService/" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IGEDemoService" contract="DemoService.IGEDemoService" name="BasicHttpBinding_IGEDemoService" behaviorConfiguration="endpoinmaxItemsInObjectGraph" />  

       </client>

 <behaviors>      

<endpointBehaviors>      

   <behavior name="endpoinmaxItemsInObjectGraph">        

   <dataContractSerializer maxItemsInObjectGraph="2147483647"/>      

   </behavior>    

   </endpointBehaviors>    

</behaviors>

 

至此修改配置完成,没怎么大批量测试但是解决我当时遇到的问题是可以了,传输数据2000以上。没有问题了原来只要超过1000条数据则就会挂掉因此此方案是可行的

最后需要注意的是在客户端配置文件中增加httpRuntime配置节点

<httpRuntime maxRequestLength="512000" executionTimeout="120" />

 

这是因为:

如果WCF以IIS作为宿主,WCF传输数据量的能力还受到HttpRunttime设置的制约,可能需要修改HttpRunttime(在system.Web节中)的MaxRequestLength属性。MaxRequestLength属性表示请求的最大大小(以千字节为单位)。默认大小为 4096 KB (4 MB),允许的最大值是2097151。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【手算】逆序数树形计算方法

计算过程&#xff1a; 给定一列数&#xff0c;从左向右&#xff0c;依次将每个数拿出来&#xff0c;作为一棵树的树根。从剩下的数中&#xff0c;找比此数小的数&#xff0c;作为子节点加入到树中。重复1、2&#xff0c;直到到达最后一个数停止。 数出二级节点&#xff0c;即…

python 惰性_Django中的“惰性翻译”方法的相关使用

使用 django.utils.translation.gettext_lazy() 函数&#xff0c;使得其中的值只有在访问时才会被翻译&#xff0c;而不是在 gettext_lazy() 被调用时翻译。例如&#xff1a;要翻译一个模型的 help_text&#xff0c;按以下进行&#xff1a;from django.utils.translation impor…

【转】SVN冲突出现场景

如今是一个团结协作的时代&#xff0c;开发一个系统&#xff0c;往往会多人协作共同完成。版本管理是必不可少的&#xff0c;常用的软件有Git&#xff0c;SVN等。今天说一下&#xff0c;SVN管理版本时&#xff0c;如果出现冲突后&#xff0c;如何快速解决冲突。 首先说明一个问…

Qt Creator和Visual Studio双环境开发技能攻略

前言 刚接触Qt开发时&#xff0c;大多数同学的第一行Qt代码是在Qt Creator中写下的。 众所周知&#xff0c;Qt Creator是Qt官方提供的Qt集成开发环境1&#xff0c;提供了对Qt应用开发的全过程支持。也就是说&#xff0c;使用Qt Creator做Qt开发是完全够用的。不管是在Windows…

大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践

摘要&#xff1a;分别用 RTK两种测量模式测定像控点&#xff0c;用大疆消费级无人机 Phantom&#xff14;PRO 开展倾斜摄影测量&#xff0c;最后进行成果检验。结果表明&#xff1a;RTK 电台模式(不做坐标校正&#xff0c;精度低)、RTK&#xff0d;CORS 网络模式测定像控点都能…

【转】CLR Profiler 性能分析工具 (转)

最近关注程序性能的优化方面&#xff0c;本想写篇CLRProfiler的简要文档&#xff0c;看到pengpeng已写好&#xff0c;那就转载好了&#xff0c;偷偷懒。 .Net的尽管拥有非常强大调试器&#xff0c;但也有很多局限性&#xff0c;只限于CLR之上&#xff0c;无法得到CLR的具体细节…

Qt学习资料汇总

1. 在线资源 脚本之家在线手册&#xff1a;Qt 快速入门系列教程W3CSchool&#xff1a;Qt 学习之路 2. 书籍资源 链接&#xff1a;https://pan.baidu.com/s/12zoOQykCA-J8x_1FVahFWA 提取码&#xff1a;关注公众号“Qt未来工程师”&#xff0c;后台回复“书籍”获取提取码。 …

魔百盒哪款型号配置高_松下负离子吹风机怎么样哪款好?推荐型号?2020年9月松下负离子电吹风选购攻略...

先说结论&#xff0c;方便时间不多的朋友&#xff0c;松下&#xff08;panasonic&#xff09;负离子吹风机怎么样哪款好&#xff1f;推荐型号&#xff1f;1、EH-ENE2-A405——松下&#xff08;panasonic&#xff09;负离子电吹风机推荐EH-ENE2-A405。带负离子功能&#xff0c;1…

【转】VS编译环境命令窗口中的命令

先描述一下VS中的几个窗口 命令窗口&#xff08;Command Window&#xff09; 利用命令窗口&#xff0c;可以查询并设置变量的值来控制程序的执行和输出&#xff0c;也可以在命令窗口中编写很多小的代码段来改变程序的输出。当程序处于中断模式时&#xff0c;命令窗口只允许输…

【软技能】代码先放一放,学习一下工程的概念

前言 本篇文章适合于以下同学阅读 接触编程时间不长的初学者&#xff1b;经常需要编程&#xff0c;但是对工程的概念相对模糊的同学。 初步认识工程 工程的概念大家或多或少都有接触过。比如在开发环境&#xff08;如Qt Creator&#xff09;里编写一个软件&#xff0c;我们…

python程序设计搜题软件_智慧职教APPPython程序设计基础答案搜题公众号

智慧职教APPPython程序设计基础答案搜题公众号更多相关问题暑淫证与火热证的共同点是A&#xff0e;都有明显的季节性B&#xff0e;脉数有力C&#xff0e;发热神昏D&#xff0e;舌红绛每种生物都是有自己特有的一套遗传密码。()患者&#xff0c;女&#xff0c;34岁。营业员&…

【转】WebAPI ASP.Net 发布部署中常见的两个错误未能找到 CodeDom未能加载System.Web.WebPages.Razor

未能加载文件或程序集“System.Web.WebPages.Razor, Version3.0.0.0, Culturene 未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft... 在包管理器中异常安装包MVC5 及 CodeDom&#xff0c;重新编译部署即可…

QSplitter设置宽高比例的正确方法

问题 实际开发中&#xff0c;需要经常调整QSplitter中子窗口的宽度/高度比例。对水平QSplitter来说&#xff0c;是宽度比例&#xff1b;对垂直QSplitter来说&#xff0c;是高度比例。下面以水平QSplitter为例说明。 我们首先应该会想起看看QSplitter是不是有设置比例的函数。…

我要回家软件_工具用的好,下班回家早,推荐几个堪称神器的高效率软件

工具用的好&#xff0c;下班回家早&#xff0c;别人已经早早下班&#xff0c;你还在哼哧哼哧的加班&#xff0c;有时候并不是你比别人慢&#xff0c;而是你没有找到提高工作效率的工具呀&#xff0c;我这次推荐几个堪称神器的高效率软件工具&#xff0c;也许能极大的提高你的工…

【转】带你玩转Visual Studio——01.开篇介绍

开篇之前&#xff0c;先唠叨几句 本人从事C开发工作一年半&#xff0c;总想就C开发方面写点东西。写什么呢&#xff1f;想了一下还是写点跟开发密切相关的吧&#xff0c;要说跟开发最密切相关的那莫过于就是开发工具了&#xff0c;也就是常常说的集成开发环境(IDE)。 这一年多…

Qt中的角度和正方向描述清单

在Qt开发中&#xff0c;不同的API对应有不同的0度和正方向&#xff0c;本文做一个汇总&#xff0c;方便查阅。 函数/模块角度描述画圆弧QPainter::drawArc3点钟方向为0度&#xff0c;逆时针为正向画弦QPainter::drawChord3点钟方向为0度&#xff0c;逆时针为正向画圆饼QPainte…

丢失模式不联网有用吗_用眼过度,打开手机“护眼模式”真的有用吗?

现如今&#xff0c;人们越来越离不开手机&#xff0c;用手机办公或者用手机娱乐&#xff0c;因疫情在家学习的学生们&#xff0c;都需要通过手机来进行学习&#xff0c;深夜剁手的你是不是也躲在被子里&#xff0c;一遍又一遍地刷新着消息&#xff0c;入睡前的最后一件事是关掉…

【基础】Qt-VS调试器下载与配置

前言 因为MSVC版的Qt不自带调试器&#xff0c;所以在Windows上使用MSVC版的Qt进行开发时&#xff0c;需要配置调试器。 本文讲解了在Windows下&#xff0c;下载和配置MSVC版Qt调试器的过程&#xff0c;并给出下载地址。 调试器选择 下表列出了不同平台下的调试器选择方案&am…

【转】带你玩转Visual Studio——02.带你新建一个工程

接着上一篇文章带你玩转Visual Studio——开篇介绍继续讲这个主题&#xff0c;现在我们从创建一个新的工程开始。 一步一步创建项目 依次选择菜单&#xff1a;File\New\Project&#xff0c;打开New Project对话框。<1>.选择项目类型&#xff1a;Win32 Console Applicat…

python seaborn 热图 值对应颜色_基于行值的seaborn热图配色方案

我有一个数据帧&#xff0c;部分是这样复制的&#xff1a;import pandas as pdimport numpy as nptab pd.DataFrame(np.array([[ 46, 39, 25, 29, 21, 12, 33, 32, 70, 109, 144, 158, 161,184, 163, 113, 117, 82, 76, 88, 77, 76, 64, 35],[ 39, 33, 29, 29, 26, 14, 25, 33…