ASP.NET - 如何在上传大文件时显示错误页面(超出最大请求长度)?

st7*_*t78 12 .net asp.net file-upload maxrequestlength application-onerror

应用程序能够在OnError中记录错误,但是我们无法进行任何重定向,因此无法向用户显示有意义的内容.有任何想法吗?我知道我们可以在web.config中设置maxRequestLength,但无论如何用户都可以超过这个限制,并且需要显示一些正常的错误.

Joh*_*dol 6

正如您所说,您可以在web.config中设置maxRequestLength(覆盖machine.config的默认4MB),如果超出此限制,通常会出现HTTP 401.1错误.

为了在应用程序级别处理通用HTTP错误,您可以在system.web部分的web.config中设置CustomError部分:

<system.web>
   <customErrors mode=On defaultRedirect=yourCustomErrorPage.aspx />
</system.web>
Run Code Online (Sandbox Code Playgroud)

每次显示错误时,用户都将被重定向到您的自定义错误页面.

如果您想为每个错误设置专门的页面,您可以执行以下操作:

<system.web>    
   <customErrors mode="On" defaultRedirect="yourCustomErrorPage.aspx">
     <error statusCode="404" redirect="PageNotFound.aspx" />
   </customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)

等等.

或者,您可以从IIS编辑虚拟目录属性的CustomErrors选项卡,以指向您选择的错误处理页面.

以上似乎不适用于401.x错误 - 这篇代码项目文章解释了一个似乎非常类似问题的解决方法:重定向到自定义401页面