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

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

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

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

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


当前回答

如果是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失败错误将使用它。所以我把答案留在这里。

其他回答

这个设置在你的网页中。配置文件。不过,它会影响整个应用程序……我认为你不能每页设置。

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

xxx的单位为KB。默认值是4096 (= 4 MB)。

如果你使用sharepoint,你也应该在管理工具中配置最大大小: kb925083

我知道这是个老问题。

这就是你要做的:

在你的网上。配置文件,在<system.web>:

<!-- 3GB Files / in kilobyte (3072*1024) -->
<httpRuntime targetFramework="4.5" maxRequestLength="3145728"/>

在<system.webServer>:

<security>
    <requestFiltering>

      <!-- 3GB Files / in byte (3072*1024*1024) -->
      <requestLimits maxAllowedContentLength="3221225472" />

    </requestFiltering>
</security>

你可以在评论中看到它是如何工作的。在其中一个中,sie的单位是字节,在另一个中,sie的单位是千字节。希望这能有所帮助。

如果它在您的本地机器上工作,在IIS(我使用Windows Server 2008 R2)部署后不工作,我有一个解决方案。

打开IIS (inetmgr) 去你的网站 在右边选择内容(请求过滤) 进入“编辑功能设置” 将最大内容大小更改为(所需字节数) 这是可行的。 你也可以从下面的帖子中得到帮助 http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

对于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>