zoukankan      html  css  js  c++  java
  • WCF错误:413 Request Entity Too Large

     

    在我们用WCF传输数据的时候,如果启用默认配置,传输的数据量过大,经常会出这个错误。

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

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

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

    复制代码
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="ServiceProxyBinding" closeTimeout="00:10:00" receiveTimeout="00:10:00"
              sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
              <readerQuotas maxStringContentLength="134217728" />
            </binding>
          </basicHttpBinding>
        </bindings>
        <client>
          <endpoint address="http://localhost:5239/AHMTService/PartService.svc"
            binding="basicHttpBinding" bindingConfiguration="ServiceProxyBinding"
            contract="UniCloud.ServiceContracts.IPartService" name="IPartService" />
        </client>
      </system.serviceModel>
    复制代码

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

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

    复制代码
    <system.serviceModel>
        <services>
          <!--DecodeService 服务端配置 增加接收文件大小-->
          <service name="UniCloud.Services.DecodeService" behaviorConfiguration="MyServiceBehaviour" >
            <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyServiceBinding" contract="UniCloud.ServiceContracts.IDecodeService">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:5239/AHMTService"/>
              </baseAddresses>
            </host>
          </service>
        </services>
        <bindings>
          <basicHttpBinding>
            <binding name="MyServiceBinding"  closeTimeout="00:10:00" receiveTimeout="00:20:00" sendTimeout="00:20:00"
    maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
              <security mode="None"></security>
            </binding>
          </basicHttpBinding>
        </bindings>
        <behaviors>
          <serviceBehaviors>
            <behavior name="MyServiceBehaviour">
              <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false -->
              <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
              <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
              <serviceDebug includeExceptionDetailInFaults="true" />
              <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <protocolMapping>
          <add binding="basicHttpsBinding" scheme="https" />
        </protocolMapping>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
    复制代码

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

     <binding   closeTimeout="00:10:00" receiveTimeout="00:20:00" sendTimeout="00:20:00"
    maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
  • 相关阅读:
    jQuery EasyUI API 中文文档 数字框(NumberBox)
    jQuery EasyUI API 中文文档 数值微调器(NumberSpinner)
    jQuery EasyUI API 中文文档 日期时间框(DateTimeBox)
    jQuery EasyUI API 中文文档 微调器(Spinner)
    jQuery EasyUI API 中文文档 树表格(TreeGrid)
    jQuery EasyUI API 中文文档 树(Tree)
    jQuery EasyUI API 中文文档 属性表格(PropertyGrid)
    EntityFramework 数据操作
    jQuery EasyUI API 中文文档 对话框(Dialog)
    jQuery EasyUI API 中文文档 组合表格(ComboGrid)
  • 原文地址:https://www.cnblogs.com/johnblogs/p/8918929.html
Copyright © 2011-2022 走看看