当我试图在我的网站上上传视频时,我得到错误的最大请求长度超过了。

我怎么解决这个问题?


当前回答

我认为这里没有提到它,但为了让它工作,我必须在web.config中提供这两个值:

在包含

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

在system。webserver中

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

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

maxAllowedContentLength有1073741824字节。

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

其他回答

这里如ex.我采取1024 (1MB) maxAllowedContentLength(长度字节)应该与你的maxRequestLength(1048576字节= 1MB)相同。

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

<system.webServer>
   <security>
      <requestFiltering>
          <requestLimits maxAllowedContentLength="1048576"/>
      </requestFiltering>
   </security>
</system.webServer>

我可以添加到config web uncompiled

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

如果有人正在寻找一种方法来处理这个异常,并向用户显示一个有意义的解释(比如“你正在上传一个太大的文件”):

//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 (((System.Web.HttpException)httpException.InnerException).WebEventCode == System.Web.Management.WebEventCodes.RuntimeErrorPostTooLarge)
    {
        //handle the error
        Response.Write("Too big a file, dude"); //for example
    }
}

(ASP。需要net4或以上版本)

我正在处理同样的错误,花时间解决后,添加以下行在web。配置文件

<system.web>
   <httpRuntime targetFramework="4.7.1" maxRequestLength="1048576"/>
</system.web>

and

 <system.webServer>
   <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
    </security>
</system.webServer>

默认情况下,最大请求大小为4MB (4096 KB)

这里解释一下。

上面的文章也解释了如何解决这个问题:)