Asp.net 超出了最大请求长度。

Asp.net 超出了最大请求长度。,asp.net,iis,file-upload,Asp.net,Iis,File Upload,当我尝试在我的站点上载视频时,我收到了超过最大请求长度的错误 如何修复此问题?默认情况下,最大请求大小为4MB(4096 KB) 这是可以解释的 上面的文章还解释了如何解决此问题:)如果您使用IIS托管应用程序,则默认上载文件大小为4MB。要增加它,请在web.config- <configuration> <system.web> <httpRuntime maxRequestLength="1048576" /> </

当我尝试在我的站点上载视频时,我收到了超过最大请求长度的错误


如何修复此问题?

默认情况下,最大请求大小为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中有一个元素用于配置上载文件的最大大小:

<httpRuntime 
    maxRequestLength="1048576"
  />

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

system.web中

<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
重要信息:这两个值必须匹配。在这种情况下,我的最大上传量是1024兆字节

maxRequestLength有1048576 KB,maxAllowedContentLength有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>

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


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

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

maxRequestLength(长度以KB为单位)在这里作为示例。我采用1024(1MB)maxAllowedContentLength(长度以字节为单位)应该与您的maxRequestLength(1048576字节=1MB)相同


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

我可以添加到未编译的配置web

<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
文件,并将
添加到

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


根据

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

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


有关详细说明,请访问

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

<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)。最大值为2147483647
  • maxAllowedContentLength的默认值为30000000(约30mb)。最大值为4294967295

更多信息

我正在处理相同的错误,在花费时间后,通过在web.config文件中添加以下行来解决它

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



谢谢sachin和我添加了一些东西,比如IIS 7.5和VS RC 2012 IIS Express,我必须同时设置这两个。httpRuntime one配置ASP.NET的最大长度,而requestLimits配置IIS的最大长度,并确保将此设置添加到主
Web.config
,而不是
视图中的设置folder@SachinShanbhag请包括
重要提示:这两个值必须匹配。在这种情况下,我的最大上传量是1024兆字节。
从Karls answer获得正确答案,然后它就可以工作了。您的计算单位是千字节和千字节,是时候更新答案了?呵呵。对于任何it可能关心的人来说:这个答案也适用于IIS Express(asp.net-webpages with WebMatrix)。是的,这是一个对我有效的答案,而不是Sachin的答案。它也适用于Azure。这绝对是正确的答案。。。两个条目都必须存在。对于MVC 3,它可以在项目根
web.config
文件中。另一个重要的事情是“executionTimeout”,Karl提到了这一点,我不得不将其与现有的一行结合起来:考虑位置的好解决方案。但是,在使用MVC(因此也使用路由)时,是否有位置路径?它将是一个URL,对应于您将上载操作设置为的路由。在我的例子中,我有一个文档控制器,它有一个名为Upload的操作,我将表单发布到该操作。在你的情况下,无论你的行为的url是什么。对于任何喜欢这个答案的人来说,。哥们,你太棒了。很抱歉,我的小小的支持票还不够。这将在MVC v5之前(包括MVC v5)使用WebAPI。一旦你点击ASP.NET
<configuration>
    <system.webServer>
        <security>
            <requestFiltering>
<system.web>
  <httpRuntime targetFramework="4.5.2" maxRequestLength="1048576"/>
</system.web>

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