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

我怎么解决这个问题?


当前回答

如果你不能更新配置文件,但是控制了处理文件上传的代码,请使用HttpContext.Current.Request.GetBufferlessInputStream(true)。

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

详情请访问https://msdn.microsoft.com/en-us/library/hh195568(v=vs.110).aspx

其他回答

这也困扰了我好几天。 我修改了网页。配置文件,但它没有工作。 原来有两个Web。配置文件在我的项目, 我应该修改ROOT目录下的那个,而不是其他的。 希望这对你有所帮助。

如果你有一个请求到站点中的应用程序,确保你在根web.config中设置了maxRequestLength。应用程序web中的maxRequestLength。Config似乎被忽略了。

在web中有一个元素。配置上传文件的最大大小:

<httpRuntime 
    maxRequestLength="1048576"
  />

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

在包含

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

在system。webserver中

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

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

maxAllowedContentLength有1073741824字节。

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

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

//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或以上版本)