为每个操作设置MaxAllowedContentLength / maxRequestLength值

时间:2010-02-15 19:17:34

标签: .net asp.net-mvc iis-7

如何为每个操作设置maxAllowedContentLength值?

我有一些用于上传文件的操作,每个操作都需要不同的maxAllowedContentLength值。

我们不希望使用动作过滤器,因为我们希望在IIS级别过滤此请求。另一方面,动作过滤器是从编码角度来看的最佳解决方案,因为它们在路径之后,所以我改变路线,继续工作。

在IIS6中,我知道我们可以使用<location>标记将maxRequestLength指定到特定位置。 我不知道如何在IIS7上使用这种方法,我不喜欢这种方法,因为url路由是在web.config中手动编码的。

解决此问题的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:1)

我没有找到实现这一目标的方法,我认为没有。可能最好的办法是使用不同的IIS网站进行文件下载操作,使用自定义web.config。

答案 1 :(得分:0)

为您想要不同过滤的区域创建单独的虚拟站点。

然后在IIS服务器上运行此命令。 (替换[IISWebsitename])

C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost

一次为该网站启用100,000,000字节的上传数据。