我发现某些地方在msdn上引用了以下代码。
[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]
没有一个参考文献实际描述了如何使用它,而我已经尝试了几项没有成功的方法。我只想为某些要求文件上传的页面修改此属性。
这是正确的方法吗?以及我该如何使用呢?
#1 楼
此设置位于您的web.config文件中。它会影响整个应用程序,但是...我认为您无法在每页上进行设置。 <configuration>
<system.web>
<httpRuntime maxRequestLength="xxx" />
</system.web>
</configuration>
“ xxx”以KB为单位。默认值为4096(= 4 MB)。
评论
这使我为整个站点工作。我现在将其设置为10240(或10 MB)。谢谢!
–艾迪
08年11月13日在23:23
如果您运行的是IIS7 +,则请参阅我的答案,但此方法无效。
– 4imble
2013年8月30日10:48
是否可以将其限制为一个控制器?
– Guillermo Varini
18年2月6日在22:16
@Eddie我有两个web.config文件,我在两个文件中都使用了它,但是它不起作用。我该怎么做 ?
–艾哈迈德
18年8月25日在13:48
也可以在特定路径上执行此操作。
–nios
18年8月29日在8:14
#2 楼
对于IIS 7+,以及添加httpRuntime maxRequestLength设置,还需要添加: <system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
</requestFiltering>
</security>
</system.webServer>
或在IIS(7)中:
选择要启用以接受大文件上传的网站。
在主窗口中,双击“请求筛选”
选择“编辑功能设置”
修改“允许的最大内容长度(字节)”
评论
我忘了千字节:p
–安德鲁·迈尔(Andrew Myhre)
2014年1月31日12:41
您可能需要同时设置maxRequestLength和maxAllowedContentLength才能使其正常工作...请参见stackoverflow.com/questions/6327452/…
–MikeM
15年6月14日在18:56
@AndrewMyhre maxAllowedContentLength以字节为单位,而不是KB。 Microsoft文档说默认值为30 MB。
–丹·伦道夫
16年5月12日在19:19
@DanRandolph实际上默认值为30000000(大约28.6MB),如iis.net/configreference/system.webserver/security/…所述。
–aaaaantoine
16年7月21日在19:17
您肯定需要两个设置。
– mohrtan
17年7月28日在12:46
#3 楼
为了增加上传文件的大小限制,我们有两种方法1.
IIS6或更低版本
默认情况下,在ASP.Net中,最大大小为要上传到服务器的文件约为4MB。可以通过修改web.config中的
maxRequestLength属性来增加此值。
请记住:maxRequestLenght位于KB
示例:如果需要要将上传限制为15MB,请将maxRequestLength设置为“ 15360”(15 x 1024)。
<system.web>
<!-- maxRequestLength for asp.net, in KB -->
<httpRuntime maxRequestLength="15360" ></httpRuntime>
</system.web>
2.
IIS7或更高版本
这里使用的上传文件的方式略有不同。IIS7引入了请求过滤模块。在ASP.Net之前执行的。这意味着管道的工作方式是IIS
首先检查value(maxAllowedContentLength)然后检查ASP.NET
value(maxRequestLength).maxAllowedContentLength
属性默认为28.61 MB。可以通过在同一Web中修改两个属性来增加此值.config。
请记住:maxAllowedContentLength以字节为单位
示例:如果要将上传限制为15MB,请将maxRequestLength设置为“ 15360”,将maxAllowedContentLength设置为“ 15728640英寸(15 x 1024 x 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/zh-cn/library/e1f13641(VS.80).aspx
#4 楼
我相信web.config中的这一行将设置最大上传大小:<system.web>
<httpRuntime maxRequestLength="600000"/>
</system.web>
评论
度过了半天之后,这对我有所帮助!非常感谢 !!!
– Sagar Khatri
19年3月22日在12:08
#5 楼
对于您的应用程序web.config,最大限制为2 GB:<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>
#6 楼
如果其Windows 2003 / IIS 6.0,则在文件夹C:\ windows \ system32 \ inetsrv \中的metabase.xml文件中检出AspMaxRequestEntityAllowed =“ 204800”默认值“ 204800”(〜我认为对于大多数用户来说205Kb)太低了。只需将值更改为您认为应该最大的值即可。
如果编辑后无法保存文件,则必须停止ISS服务器或启用服务器以允许编辑文件:
(来源:itmaskinen .se)
编辑:我没有正确阅读问题(如何在webconfig中设置maxrequest)。但是此信息对于其他人可能是个麻烦,许多将站点从win2000服务器移到win2003并具有正常工作的上传功能并突然收到Request.BinaryRead Failed错误的人将使用它。所以我在这里留下答案。
#7 楼
我在Win 2008 IIS服务器中有相同的问题,我已经解决了在web.config中添加此配置的问题: <system.web>
<httpRuntime executionTimeout="3600" maxRequestLength="102400"
appRequestQueueLimit="100" requestValidationMode="2.0"
requestLengthDiskThreshold="10024000"/>
</system.web>
默认情况下,requestLengthDiskThreshold为80000字节,因此对于我的应用程序来说太小了。 requestLengthDiskThreshold以字节为单位,maxRequestLength以KB为单位。
如果应用程序使用
System.Web.UI.HtmlControls.HtmlInputFile
服务器组件,则会出现问题。要解决此问题,必须增加requestLengthDiskThreshold。评论
根据msdn.microsoft.com/zh-cn/library/e1f13641(v=vs.100).aspx,指定输入流缓冲阈值的限制,以千字节为单位。此值不应超过maxRequestLength属性。因此它最多应与请求长度相同?
–杰夫
16年1月20日在19:31
是@ Jeff,requestLengthDiskThreshold的值应小于maxRequestLength,但第一个以字节表示。如果requestLengthDiskThreshold大于maxRequestLength,则将引发ConfigurationErrorsException,因此您可以自己测试正确的值。见forums.asp.net/t/…
–马西莫·采尔比尼(Massimo Zerbini)
16年1月26日在15:32
#8 楼
最大文件大小可以限制为单个MVC控制器,甚至可以限制为Action。web.config
<location path="YourAreaName/YourControllerName>/YourActionName>">
<system.web>
<!-- 15MB maxRequestLength for asp.net, in KB 15360 -->
<httpRuntime maxRequestLength="15360" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- 15MB maxAllowedContentLength, for IIS, in bytes 15728640 -->
<requestLimits maxAllowedContentLength="15728640" />
</requestFiltering>
</security>
</system.webServer>
</location>
或者您可以在区域自己的web.config中添加这些条目。
评论
此值应该更高并且用于代替可接受的答案,因为这对于验证请求大小更加安全。
–乔纳森·奥尔特加(Jonathan Ortega)
19年7月3日在19:48
#9 楼
如果您使用的是Framework 4.6<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760" />
#10 楼
我知道这是一个老问题。这就是您要做的事情:
在web.config文件中,将其添加到
<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,在另一个中以千字节为单位。希望能有所帮助。
#11 楼
您可以在应用程序web.config文件中编写该代码块。<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600" />
通过编写该代码,您可以上传比现在大的文件
#12 楼
如果您使用共享点,则还应该使用管理工具配置最大大小:kb925083
#13 楼
我有一篇博客文章,介绍如何增加ASP上传控制的文件大小。摘自:
默认情况下,FileUpload控件最多允许上传4MB的文件,并且执行
超时为110秒。您可以在web.config文件的httpRuntime部分中更改这些属性。 maxRequestLength属性确定可以上传的最大文件大小。
executionTimeout属性确定执行的最长时间。
#14 楼
如果它可以在您的本地计算机上运行,并且在IIS中部署后无法运行(我使用Windows Server 2008 R2),我有解决方案。打开IIS(inetmgr)
转到您的网站
在右侧转到“内容(请求过滤)”
转到“编辑功能设置”
更改最大内容大小为(所需字节数)
这将起作用。
您还可以从以下线程中寻求帮助
http://www.iis.net/configreference/system.webserver/security / requestfiltering / requestlimits
评论
您确定这是代码限制,而不是主机限制? IIS也有限制。我很确定这是.Net的限制。下面的答案对我有用。