Web.config 配置请求数据大小限制及超时
- .Net
- 2020-07-22
- 24热度
- 0评论
在 Web.config 文件中的 system.web 节点下加入以下配置:
<configuration>
<system.web>
<!-- ASP.NET支持的最大请求大小默认为 4096 KB (4 MB)。可参见:官方说明 -->
<!-- MaxRequestLength 属性指定输入流的缓冲阈值的限制。 例如,此限制可用于防止拒绝服务攻击,这些攻击由向服务器发送大型文件的用户造成。 -->
<!-- 单位为KB,102400即为100MB,设置超时时间(允许执行请求的最大时间)为200秒 -->
<httpRuntime maxRequestLength="102400" executionTimeout="200" enable="true" />
<!-- 若超过get提交参数的字符长度大小限制,则 ASP.NET 将返回 HTTP 400 (错误请求)状态代码。 -->
<!-- <httpRuntime maxQueryStringLength="102400"/> -->
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- IIS支持的请求中内容的最大长度,默认值30000000字节(约28.6 MB),最大值2147483648字节(2GB)。 -->
<!-- 单位是 byte ,也就是100M -->
<requestLimits maxAllowedContentLength="104857600" />
<!-- 指定IIS中get提交参数的字符长度大小,默认值2048 -->
<!-- <requestLimits maxQueryString="10240"></requestLimits> -->
</requestFiltering>
</security>
</system.webServer>
</configuration>
注:
要上传大文件,我们需要同时设置这两个参数,较小的那个“优先”,即最终支持上传的文件的大小根据maxRequestLength和maxAllowedContentLength中的较小值而定。如果文件长度小于maxAllowedContentLength但大于maxRequestLength,用户将获得标准(ASPX)错误页面。相反,用户会得到IIS错误页面。
建议:
将maxRequestLength设置为两者中的较小者,因为如果超出该限制,您可以在Global.asax的Application_Error事件中捕获异常。如果超过maxAllowedContentLength,则IIS将首先处理它而不是ASP.NET,这使得在代码中处理起来更加棘手。

鲁ICP备19063141号
鲁公网安备 37010302000824号