提问人:Surya sasidhar 提问时间:10/4/2010 最后编辑:Neeraj KumarSurya sasidhar 更新时间:3/11/2023 访问量:968936
超出最大请求长度。
Maximum request length exceeded.
答:
默认情况下,最大请求大小为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>
注意:
maxRequestLength
以千字节为单位maxAllowedContentLength
以字节为单位
这就是此配置示例中的值不同的原因。(两者都相当于 1 GB。
评论
Web.config
Views
IMPORTANT: Both of these values must match. In this case, my max upload is 1024 megabytes.
web.config 中有一个元素用于配置上传文件的最大大小:
<httpRuntime
maxRequestLength="1048576"
/>
我不认为这里提到过它,但要让它工作,我必须在 web.config 中提供这两个值:
在system.web
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
而在system.webServer
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
重要说明:这两个值必须匹配。在这种情况下,我的最大上传量为 1024 兆字节。
maxRequestLength 有 1048576 KB,maxAllowedContentLength 有 1073741824 BYTES。
我知道这是显而易见的,但很容易被忽视。
评论
web.config
值得注意的是,您可能希望将此更改限制为您希望用于上传的 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.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.NET 4 或更高版本)
评论
HttpContext.Current.ClearError()
Response.Redirect()
web.config
maxRequestLength
httpRuntime
onchange
maxAllowedContentLength
如果请求转到站点中的应用程序,请确保在根 web.config 中设置 maxRequestLength。应用程序的 web.config 中的 maxRequestLength 似乎被忽略。
评论
httpRuntime maxRequestLength="###
requestLimits maxAllowedContentLength
maxRequestLength(长度,以 KB 为单位) 此处作为示例。我拿了 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>
这也困扰了我好几天。 我修改了 Web.config 文件,但它不起作用。 原来我的项目中有两个Web.config文件, 我应该修改 ROOT 目录中的一个,而不是其他的。 希望这对您有所帮助。
我可以添加到配置未编译的 web
<system.web>
<httpRuntime maxRequestLength="1024" executionTimeout="3600" />
<compilation debug="true"/>
</system.web>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1048576"/>
</requestFiltering>
</security>
评论
executionTimeout
compilation
我的 web.config 文件有多个 system.web 部分这一事实让我感到困惑:当我在配置级别将 httpRuntime maxRequestLength=“1048576” /> <添加到 system.web 部分时,它起作用了。
我不得不编辑文件并添加到...C:\Windows\System32\inetsrv\config\applicationHost.config
<requestLimits maxAllowedContentLength="1073741824" />
<configuration>
<system.webServer>
<security>
<requestFiltering>
部分。
评论
applicationHost.config
如果无法更新配置文件,但控制处理文件上传的代码,请使用 .HttpContext.Current.Request.GetBufferlessInputStream(true)
参数的值指示框架忽略配置的请求限制。true
disableMaxRequestLength
有关详细说明,请访问 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>
规则:
- maxRequestLength(以 kb 表示)值必须匹配 maxAllowedContentLength(以字节表示)。
- 大多数情况下,system.web 部分可能已经包含“httpRuntime”。将 targetFramework 设置为使用的 .net 版本。
笔记:
- maxRequestLength 的默认值为 4096 (4mb)。最大值为 2,147,483,647
- maxAllowedContentLength 的默认值为 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>
注意:正如一些人指出的那样,已经有一个 <httpRuntime 条目。在我的 web.config 文件中。我盲目地从这里复制并粘贴了另一个 httpRuntime,它使整个站点崩溃。
评论