超出最大请求长度。

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

我该怎么解决这个问题?

916329 次浏览

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

这是解释这里

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

如果您使用IIS托管您的应用程序,那么默认上传文件大小为4MB。要增加它,请在您的web.config-

<configuration><system.web><httpRuntime maxRequestLength="1048576" /></system.web></configuration>

对于IIS7及以上版本,您还需要添加以下行:

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

说明

  • #0千字节中测量
  • #0字节中测量

这就是为什么此配置示例中的值不同的原因。(两者都相当于1 GB。)

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

<httpRuntimemaxRequestLength="1048576"/>

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

system.web

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

system.webServer

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

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

最大请求长度为1048576千字节,最大允许长度为1073741824字节

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

值得注意的是,您可能希望将此更改限制为您希望用于上传的URL,而不是整个网站。

<location path="Documents/Upload"><system.web><!-- 50MB in kilobytes, default is 4096 or 4MB--><httpRuntime maxRequestLength="51200" /></system.web><system.webServer><security><requestFiltering><!-- 50MB in bytes, default is 30000000 or approx. 28.6102 Mb--><requestLimits maxAllowedContentLength="52428800" /></requestFiltering></security></system.webServer></location>

以防万一有人在寻找处理此异常的方法并向用户显示有意义的解释(例如“您上传的文件太大”):

//Global.asaxprivate 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 errorResponse.Write("Too big a file, dude"); //for example}}

(ASP.NET4或以上)

如果您有一个请求要发送给站点中的应用程序,请确保您在根目录中设置了maxRequest estLweb.config.应用程序web.config中的maxRequest estL似乎被忽略了。

最大请求长度(以KB为单位)这里是前例。我取了1024(1MB)最大允许内容长度(以字节为单位的长度)应该与您的最大请求长度(1048576字节=1MB)相同。

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

这也困扰了我好几天。我修改了Web.config文件,但它不起作用。原来我的项目中有两个Web.config文件,我应该修改ROOT目录中的一个,而不是其他的。希望对你有帮助

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

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

我被我们的web.config文件有多个system.web部分的事实绊倒了:当我在配置级别的system.web部分中添加时,它起作用了。

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

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

节。

根据此Microsoft支持文章

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

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

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

在一个地方总结所有答案:

<system.web><httpRuntime targetFramework="4.5.2" maxRequestLength="1048576"/></system.web>
<system.webServer><security><requestFiltering><requestLimits maxAllowedContentLength="1073741824" /></requestFiltering></security></system.webServer>

规则:

  • maxRequest estL(以kb表示)值必须匹配最大允许内容长度(以字节为单位)。
  • 大多数情况下,您的system.web部分可能已经包含一个“http运行时”。将您的目标框架设置为所使用的. net版本。

备注:

  • 最大请求长度的默认值为4096(4mb)。最大值为2,147,483,647
  • 最大允许内容长度的默认值是30,000,000(大约30mb)。最大值是4,294,967,295

更多信息MSDN

我正在处理同样的错误,并花时间解决了它通过添加下面的行在web.config文件

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

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