我有一个 aspx 页面,允许用户上传文件,并且我想将最大文件上传大小限制为 10MB。IIS7、.NET 3.5。我在 web.config 文件中配置了以下内容:
<location path="foo.aspx">
<system.web>
<!-- maxRequestLength: kbytes, executionTimeout:seconds -->
<httpRuntime maxRequestLength="10240" executionTimeout="120" />
<authorization>
<allow roles="customRole"/>
<!-- Deny everyone else -->
<deny users="*"/>
</authorization>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- maxAllowedContentLength: bytes -->
<requestLimits maxAllowedContentLength="10240000"/>
</requestFiltering>
</security>
<handlers accessPolicy="Read, Script">
<add name="foo" path="foo.aspx" verb="POST"
type="System.Web.UI.PageHandlerFactory"
preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
我有一个自定义错误处理模块,它实现IHttpModule
. 我发现当maxRequestLength
超过时,HttpApplication.Error
确实会提高。但是,当我玩 时maxAllowedContentLength
,HttpApplication.Error
不会引发事件,并且用户会被重定向到 404.13 页面。我已经附加了 Visual Studio,第一次机会异常打开,没有抛出任何异常。
我的第一个想法是在较早的事件中检查标题内容长度——是否有关于我在哪里执行此操作的建议/最佳实践?PostLogRequest?结束请求?