我有一个窗体,除了一个文件上传在ASP.NET。我需要将最大上传大小增加到默认的4 MB以上。

我发现在msdn的某些地方引用了下面的代码。

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

没有任何参考文献真正描述了如何使用它,我已经尝试了几次,但都没有成功。我只想为要求上传文件的某些页面修改此属性。

走这条路对吗?我怎么使用这个呢?


当前回答

对于2 GB的最大限制,在你的应用程序web.config:

<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
</system.web>

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

其他回答

要增加上传文件的大小限制,我们有两种方法

1. IIS6或更低

默认情况下,在ASP。上传到服务器的文件的最大大小为 4 mb左右。属性可以增加该值 config中的maxRequestLength属性。 记住:maxrequestlengt的单位是KB

例如:如果你想限制上传15MB,设置maxRequestLength为“15360”(15 * 1024)。

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

2. IIS7或更高

这里使用的上传文件的方式略有不同。IIS7已经 介绍了请求过滤模块。之前执行过 意思是流水线的工作方式是IIS value(maxAllowedContentLength)先检查,然后ASP。网 value(maxRequestLength)被检查。的maxAllowedContentLength 属性默认为28.61 mb。此值可以通过 在同一个web.config中修改两个属性。 记住:maxAllowedContentLength以字节为单位

例如:如果你想限制上传15MB,设置maxRequestLength为“15360”,maxAllowedContentLength为“15728640”(15 * 1024 * 1024)。

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

<system.webServer>              
   <security> 
      <requestFiltering> 
         <!-- maxAllowedContentLength, for IIS, in bytes --> 
         <requestLimits maxAllowedContentLength="15728640" ></requestLimits>
      </requestFiltering> 
   </security>
</system.webServer>

MSDN参考链接:https://msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx

你可以在你的web应用程序中编写这段代码。配置文件。

<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600"  />

通过编写这些代码,您可以上传一个比现在更大的文件

我相信网络上的这句话。配置将设置最大上传大小:

<system.web>

        <httpRuntime maxRequestLength="600000"/>
</system.web>

如果是windows 2003 / IIS 6.0,那么在C:\windows\system32\inetsrv\目录下的metbase .xml文件中检查AspMaxRequestEntityAllowed = "204800"

默认值“204800”(~205Kb)在我看来对于大多数用户来说太低了。只需将值更改为您认为应该是max的值。

如果你不能保存文件后编辑它,你必须停止ISS-server或使服务器允许编辑文件:

(来源:itmaskinen.se)

编辑:我没有阅读正确的问题(如何设置webconfig中的maxrequest)。但是这一信息可能会引起其他人的兴趣,许多人将他们的网站从win2000-server迁移到win2003,并且有一个正常的上传功能,然后突然收到了请求。BinaryRead失败错误将使用它。所以我把答案留在这里。

我在win2008 IIS服务器中遇到了同样的问题,我已经解决了在web.config中添加此配置的问题:

<system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" 
     appRequestQueueLimit="100" requestValidationMode="2.0"
     requestLengthDiskThreshold="10024000"/>
</system.web>

requestLengthDiskThreshold默认为80000字节,因此对于我的应用程序来说太小了。requestLengthDiskThreshold以字节为单位,maxRequestLength以Kbytes为单位。

如果应用程序使用System.Web.UI.HtmlControls.HtmlInputFile服务器组件,就会出现这个问题。需要增加requestLengthDiskThreshold来解决这个问题。