【问题标题】:Unable to handle http error 404.13 in mvc 5 app on iis 8.0无法在 iis 8.0 上的 mvc 5 应用程序中处理 http 错误 404.13
【发布时间】:2014-12-06 05:07:30
【问题描述】:

我正在开发一个允许用户上传文件的 MVC5 项目。我已经有了过滤无效文件扩展名的方法(只允许使用图片和 pdf)。但是,当我尝试上传大文件时,无论扩展名如何,都会出现此错误:

HTTP Error 404.13 - Not Found
The request filtering module is configured to deny a request that exceeds
the request content length.

上传的方法甚至没有被调用,它直接进入错误页面。

我发现一个帖子表示我需要修改我的项目的web.config 文件,我这样做了:

 <security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="6000000" />
  </requestFiltering>
</security>

我仍然收到错误,所以我也尝试将&lt;httpRuntime maxRequestLength="6000" executionTimeout="3600" /&gt; 添加到&lt;system.web&gt;,但这引发了这个错误:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data 
for the page is invalid.

显然,这一行必须用于早期版本的 IIS。

我还找到了另一个解决方案,建议在我的服务器上编辑applicationHost.config 文件,如项目的web.config;这也没有用。

有什么建议吗?

【问题讨论】:

    标签: c# asp.net-mvc-5 iis-8


    【解决方案1】:

    看起来您实际上使 maxAllowedContentLength 变小了。默认是 30000000 字节,你上面有 6000000 字节。

    30000000 b = 30 mb

    6000000 b = 6 mb

    添加另一个 0 应该可以解决问题。

    【讨论】:

    • 由于用户将上传图像和/或 pdf,我想将文件限制为最大 6mb(无论如何,这对于图像来说是相当大的)。'问题'是如果一个更大的文件提交后,我的控制器方法甚至没有被命中;该站点只是转到 IIS 错误页面。
    • 控制器不会被调用。该框架已经触发了保护控制器的那些错误。您必须将其捕获在 Global.asax.cs application_error
    • 这是意料之中的,因为 IIS 在处理请求/到达您的控制器之前抛出错误。我会说增加 web.config 文件的大小,这样 IIS 就不会抛出错误并以其他方式验证文件大小。
    • @Aaron 我很惊讶我的搜索时间没有拉出这篇文章......谢谢!
    猜你喜欢
    • 2013-09-14
    • 2010-09-11
    • 2015-05-30
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多