[Asp.net] 超过最大请求长度。



Answers

我不认为它在这里被提及,但为了得到这个工作,我必须在web.config中提供这两个值:

system.web

<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

并在system.webServer

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
</security>

重要提示 :这两个值必须匹配。 在这种情况下,我的最大上传量为1024兆字节。

maxRequestLength有1048576 KILOBYTES ,maxAllowedContentLength有1073741824 BYTES

我知道这很明显,但很容易忽视。

Question

当我尝试在我的网站上传视频时,出现错误的最大请求长度超出了错误。

我该如何解决?




如果您无法更新配置文件但完全控制处理上载文件的代码,则使用HttpContext.Current.Request.GetBufferlessInputStream(true)

disableMaxRequestLength参数的true值告诉框架忽略配置的请求限制。

有关详细说明,请访问https://msdn.microsoft.com/en-us/library/hh195568(v=vs.110).aspx




并且为了防止有人在寻找一种方法来处理这个异常并向用户显示有意义的解释(例如“您上传的文件过大”):

//Global.asax
private void Application_Error(object sender, EventArgs e)
{
    var ex = Server.GetLastError();
    var httpException = ex as HttpException ?? ex.InnerException as HttpException;
    if(httpException == null) return;

    if(httpException.WebEventCode == WebEventCodes.RuntimeErrorPostTooLarge)
    {
        //handle the error
        Response.Write("Too big a file, dude"); //for example
    }
}

(需要ASP.NET 4或更高版本)




我可以添加到配置网络未编译

<system.web> 
  <httpRuntime maxRequestLength="1024" executionTimeout="3600" /> 
  <compilation debug="true"/> 
</system.web> 
<security> 
  <requestFiltering> 
    <requestLimits maxAllowedContentLength="1048576"/> 
  </requestFiltering> 
</security>



web.config中有一个元素用于配置上传文件的最大大小:

<httpRuntime 
    maxRequestLength="1048576"
  />



maxRequestLength(长度以KB为单位) 我花了1024(1MB)maxAllowedContentLength(长度以字节为单位)应该与您的maxRequestLength(1048576字节= 1MB)相同。

<system.web>
   <httpRuntime maxRequestLength="1024"
             executionTimeout="3600" />
   <compilation debug="true"/>
</system.web>

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="1048576"/>
  </requestFiltering>
</security>



我必须编辑C:\Windows\System32\inetsrv\config\applicationHost.config文件并将<requestLimits maxAllowedContentLength="1073741824" />到...的末尾...

<configuration>
    <system.webServer>
        <security>
            <requestFiltering>

部分。

按照此Microsoft支持文章






Links