WCF服务端返回:(413) Request Entity Too Large

出现这个原因我们应该都能猜测到,文件传出过大,超出了WCF默认范围,那么我们需要进行修改。

服务端和客户端都需要修改。

第一、客户端:

<system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_ITaskService"  />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:9001/wcf/TaskService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITaskService"
                contract="BZAService.ITaskService" name="BasicHttpBinding_ITaskService" />
        </client>
    </system.serviceModel>

  

上面是wcf客户端默认生成的,如需要修改传输文件大小,需要一下改动

<binding name="BasicHttpBinding_ITaskService" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />

  

第二、服务端:

<system.serviceModel>
       <services>
      <service name="BZACenterService.AssetService.TaskService">
        <endpoint address="" binding="basicHttpBinding" contract="BZACenterService.AssetService.ITaskService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8733/Design_Time_Addresses/BZACenterService.AssetService/TaskService/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

  上面是服务端默认配置,我们发现并没有bindings,如何设置那,方法是手动在<services>上增加如下

<bindings>
     <basicHttpBinding>
        <binding name="LargeDataTransferServicesBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"
             transferMode="Streamed" sendTimeout="00:10:00" />
</binding>

  然后记得在在service 力的endpoint  增加属性 bindingConfiguration="LargeDataTransferServicesBinding"

最终如下:

<system.serviceModel>
 <bindings>
      <basicHttpBinding>
        <binding name="LargeDataTransferServicesBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"
                  transferMode="Streamed" sendTimeout="00:10:00"
                 />
      </basicHttpBinding>
    </bindings>
       <services>
      <service name="BZACenterService.AssetService.TaskService">
        <endpoint address="" binding="basicHttpBinding" contract="BZACenterService.AssetService.ITaskService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8733/Design_Time_Addresses/BZACenterService.AssetService/TaskService/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

第三、测试运行

      最后编译运行,正常调用wcf了。

时间: 2024-10-06 21:07:21

WCF服务端返回:(413) Request Entity Too Large的相关文章

WCF错误:413 Request Entity Too Large

在我们用WCF传输数据的时候,如果启用默认配置,传输的数据量过大,经常会出这个错误. WCF包含服务端与客户端,所以这个错误可能出现在服务端返回数据给客户端,或客户端传数据给服务端时. 1. 服务端返回数据给客户端报错 在客户端配置文件中,主要是配置maxReceivedMessageSize <system.serviceModel> <bindings> <basicHttpBinding> <binding name="ServiceProxyBi

nginx、Apache、IIS中413 Request Entity Too Large问题解决方法

分享下nginx.Apache.IIS三种服务器解决413 Request Entity Too Large问题的方法. 一.nginx服务器 nginx出现这个问题的原因是请求实体太长了.一般出现种情况是Post请求时Body内容Post的数据太大了,如上传大文件过大.POST数据比较多. 处理方法在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制:当然可以设置的更大点.# 在http,server或者loc

运维挖坑埋坑之旅----413 Request Entity Too Large

好久没写博文了,天天忙的喘不过来气.最近是该总结总结前段时间的工作了,顺便缓解下这两天的霉气. 今天在内部上了一套图片编辑系统,结果下午就收到开发的报错,报错信息如下: <html> <head><title>413 Request Entity Too Large</title></head> <body bgcolor="white"> <center><h1>413 Request E

Nginx &nbsp; 413 Request Entity Too Large

在上传时nginx返回了413错误,查看log文件,显示的错误信息是:"413 Request Entity Too Large", 需要做以下设 置: 打开nginx主配置文件nginx.conf,找到http{}段,增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到3m以增加提高文件大小限制: client_max_body_size     3m;       client_body_buffer_size  128k;       prox

svn 413 Request Entity Too Large 错误

最近svn检出代码报错:svn 413 Request Entity Too Large svn使用的是自己搭建:svn+LDAP+Apache集成,因此初步定位应该为http 配置,限制了用户请求的页面的大小. 修改apache的配置文件,在其中加入,以下两行,之后重启httpd服务,即修复 LimitXMLRequestBody 0LimitRequestBody 0 客户端--子目录分别更新又可以了 原文地址:http://blog.51cto.com/10700164/2086343

dnmp(docker的lnmp)安装WordPress之后图片上传问题 问题:图片上传大小问题解决和 报错413 Request Entity Too Large

首先是提示超过图片尺寸和大小, 最后发现都是图片大小的问题, 需要修改php的最大上传size 修改之后查看php配置  已经生效  但是还是报错, 提示返回不是合法的json,  查看控制台, 报错是问题:413 Request Entity Too Large  发现是Nginx的配置, 有盖配置. dnmp环境  php配置  直接重新 docker-compose up --build  就可以生效 nginx 需要 停止 删除 重新build才可以, 注意, 停止删除容器, build

Nginx出现413 Request Entity Too Large错误解决方法

Nginx出现的413 Request Entity Too Large错误,这个错误一般在上传文件的时候出现,打开nginx主配置文件nginx.conf,找到http{}段,添加 解决方法就是 打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加  代码如下 复制代码 client_max_body_size 2m; 然后重启nginx,  代码如下 复制代码 sudo /etc/ini

Nginx出现“413 Request Entity Too Large”错误解决方法

今天使用phpmyadmin的导入功能的时候,由于sql文件过大,服务器出现错误提示了,413 Request Entity Too Large,google了一下,发现是Nginx的错误提示.  解决方法:打开nginx主配置文件nginx.conf,找到http{}段,添加 client_max_body_size 100m; fedora下 vi /etc/nginx/nginx.conf  重启NGINX   sudo /etc/init.d/nginx restart 恢复正常

nginx 问题 413 Request Entity Too Large的解决方法

上传图片出现Nginx出现"413 Request Entity Too Large"错误解决方法 看了一下nginx.conf发现没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M 解决方法:打开nginx主配置文件nginx.conf,找到http{}段,添加 client_max_body_size 20m;

Nginx 出现413 Request Entity Too Large得解决方法

Nginx 出现413 Request Entity Too Large得解决方法 默认情况下使用nginx反向代理上传超过2MB的文件,会报错413 Request Entity Too Large ,修改或增加配置client_max_body_size值即可: nginx默认上传文件的大小是1M 解决方法: 打开/usr/local/etc/nginx/nginx.conf,找到 http { -- } 在里面加入 client_max_body_size 4m; 如: http { --