Web.config 配置请求数据大小限制及超时

在 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,这使得在代码中处理起来更加棘手。