asp.net Webapi文件上传超过了最大请求长度解决方法

一、开发阶段配置

1、修改maxRequestLength参数,这个参数在web.config配置中的<system.web></system.web>配置段中的maxRequestLength参数,默认是4M,我们可以修改成如下,如果没有则添加 <httpRuntime maxRequestLength="20480" />

<system.web>
  <!--最大请求长度,单位为kb-->
  <httpRuntime maxRequestLength="20480" />
</system.web>

2、修改修改maxAllowedContentLength参数,这个参数在web.config配置中的<system.webServer></system.webServer>配置段中的maxAllowedContentLength,表示附件大小上限,单位是字节,默认约30M

<system.webServer>
 <!--允许上传文件长度,单位字节-->
 <security>
   <requestFiltering>
  <requestLimits maxAllowedContentLength="20971520"/>
  </requestFiltering>
 </security>
</system.webServer>

如果配置了这两步之后依然没有起作用,则直接去修改.NET FrameWork框架

(1) 修改 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG 目录下的machine.config 文件。这里v1.1.4322根据自己安装NET 的实际版本去找

(2) 查找 "<httpruntime" 在这一行将 maxRequestLength的值改为理想的值,比如想要8M,就输入8192.

这样,你的任何一个 web 工程都可以上传最大8M的文件。

二、发布阶段

在配置框架的文件上传限制后,发布之后依然不能传大文件,原因是因为iis的限制,需要修改iis的配置,配置方法如下,找到对应站点下的配置编辑器

找到system.web/httpRuntime,配置maxequestLength,修改到合适的大小(根据上传情况自己设置,把默认值改大),点击应用保存

找到system.webServer/security/requestFiltering;

编辑requestLimits下的maxAllowedContentLength,修改为合适的大小

三、跨越设置

如果在iis中配置了Http响应标头依然跨越的话,可以在config中进行如下配置;注:配置后需将iis配置的Http响应标头删掉,否则前端会出现多个响应头,前端依然无法正常使用

      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
        <add name="Access-Control-Allow-Headers" value="Content-Type,Accept" />
      </customHeaders>

四、发布时的bug解决

经常会出现这样的情况,程序发布后,之前调试好的功能与接口机就失效了,此处是因为发布后会重置iis的状态,此时记得将iis的配置检测一下,如果不正确,按之前的重新配置一下即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值