架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 18421|回复: 0

[WCF/Web Servics] WCF错误:413 Request Entity Too Large

[复制链接]
发表于 2016-7-19 21:11:19 | 显示全部楼层 |阅读模式
在我们用WCF传输数据的时候,如果启用默认配置,传输的数据量过大,经常会出这个错误。

WCF包含服务端与客户端,所以这个错误可能出现在服务端返回数据给客户端,或客户端传数据给服务端时。

1. 服务端返回数据给客户端报错

在客户端配置文件中,主要是配置maxReceivedMessageSize

  1. <system.serviceModel>
  2.     <bindings>
  3.       <basicHttpBinding>
  4.         <binding name="ServiceProxyBinding" closeTimeout="00:10:00" receiveTimeout="00:10:00"
  5.           sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
  6.           <readerQuotas maxStringContentLength="134217728" />
  7.         </binding>
  8.       </basicHttpBinding>
  9.     </bindings>
  10.     <client>
  11.       <endpoint address="http://localhost:5239/AHMTService/PartService.svc"
  12.         binding="basicHttpBinding" bindingConfiguration="ServiceProxyBinding"
  13.         contract="UniCloud.ServiceContracts.IPartService" name="IPartService" />
  14.     </client>
  15.   </system.serviceModel>
复制代码

2 客户端传数据给服务端报错

修改服务端web.config,主要也是配置maxReceivedMessageSize

  1. <system.serviceModel>
  2.     <services>
  3.       <!--DecodeService 服务端配置 增加接收文件大小-->
  4.       <service name="UniCloud.Services.DecodeService" behaviorConfiguration="MyServiceBehaviour" >
  5.         <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyServiceBinding" contract="UniCloud.ServiceContracts.IDecodeService">
  6.         </endpoint>
  7.         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  8.         <host>
  9.           <baseAddresses>
  10.             <add baseAddress="http://localhost:5239/AHMTService"/>
  11.           </baseAddresses>
  12.         </host>
  13.       </service>
  14.     </services>
  15.     <bindings>
  16.       <basicHttpBinding>
  17.         <binding name="MyServiceBinding"  closeTimeout="00:10:00" receiveTimeout="00:20:00" sendTimeout="00:20:00"
  18. maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
  19.           <security mode="None"></security>
  20.         </binding>
  21.       </basicHttpBinding>
  22.     </bindings>
  23.     <behaviors>
  24.       <serviceBehaviors>
  25.         <behavior name="MyServiceBehaviour">
  26.           <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
  27.           <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
  28.           <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
  29.           <serviceDebug includeExceptionDetailInFaults="true" />
  30.           <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
  31.         </behavior>
  32.       </serviceBehaviors>
  33.     </behaviors>
  34.     <protocolMapping>
  35.       <add binding="basicHttpsBinding" scheme="https" />
  36.     </protocolMapping>
  37.     <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  38.   </system.serviceModel>
复制代码

其实要修改所有的服务,不管是服务端还是客户端,Binding那边增加一个没有设置名字的默认配置就OK了

  1. <binding   closeTimeout="00:10:00" receiveTimeout="00:20:00" sendTimeout="00:20:00"
  2. maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
复制代码






上一篇:由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 In...
下一篇:The operation 'xxx' could not be loaded because it has a parameter or retu...
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-7-30 18:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表