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

转载于:https://www.cnblogs.com/snowsky/archive/2010/12/22/1913601.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值