我想为maxRequestLength设置多个 - 文件大小上传限制(例如,一个用于文件/新建,另一个用于图片/新建)。我的所有操作都采用其他参数(例如/ File / New?folderId = 234)。
单一设置按预期工作:
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
我尝试在根web.config中有2个位置部分的2个设置,但没有任何成功。我不确定在“路径”中写什么 - 视图的物理aspx页面,或控制器+动作......但是,似乎没有任何工作。
<location path="/File/">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="4096" />
</system.web>
</location>
<location path="/Picture/">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
</system.web>
</location>
我试图将另一个web.config放在特定的视图文件夹中(例如/ Views / Picture / ...),就像在经典的Webform ASP.NET中一样,但这似乎也没有。 ..
<location path="">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
</system.web>
</location>
无论我做什么,只应用httpRuntime.maxRequestLength的一个值 - 在(root)web.config ... system.web中。
答案 0 :(得分:11)
请在此处查看我的回答:ASP.NET MVC and httpRuntime executionTimeout
答案 1 :(得分:11)
我认为Path属性不应该以“/”开头或结尾 - 所以你应该有:
<location path="File">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="4096" />
</system.web>
</location>
<location path="Picture">
<system.web>
<httpRuntime executionTimeout="60" maxRequestLength="1024" />
</system.web>
</location>
您的虚拟或物理目录级Web.config不应具有&lt; location&gt;元件。
那会让你感到厌烦。
Location element的文档甚至有这样的例子:
以下代码示例演示了如何仅将指定页面的上载文件大小限制设置为128 KB。
<configuration>
<location path="UploadPage.aspx">
<system.web>
<httpRuntime maxRequestLength="128"/>
</system.web>
</location>
</configuration>
答案 2 :(得分:0)
此解决方案不完整,因为IIS 7默认情况下“请求过滤”设置限制为30Mb。您应该增加此参数,请参阅my blogpost
中的详细信息