ASP.NET MVC中的文件大小上传限制:web.config中多于1个maxRequestLength如何设置(s)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (71)

我想为maxRequestLength有多个设置 - 文件大小上传限制(例如文件/新建,文件/新建)。我所有的动作都带有额外的参数(例如/ File / New?folderId = 234)。

单一设置按预期工作:

<httpRuntime executionTimeout="60" maxRequestLength="1024" />

我试图在根web.config中有两个位置部分的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中。

提问于
用户回答回答于

ASP.NET MVC和httpRuntime executionTimeout的问题

用户回答回答于

我相信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应该不具有<location>元素。

这应该把你排除在外。

位置元素的文档甚至有这样的例子:

以下代码示例演示如何仅将指定页面的上载文件大小限制设置为128 KB。

<configuration>
  <location path="UploadPage.aspx">
    <system.web>
      <httpRuntime maxRequestLength="128"/>
    </system.web>
  </location>
</configuration>

扫码关注云+社区

领取腾讯云代金券