超过了处理最大请求长度

本文关键字:请求 过了 处理 | 更新日期: 2023-09-27 18:09:44

我想知道,哪种方法是处理应用程序中"超过最大请求长度"错误的最佳方法。我有一个asp.net应用程序,允许用户上传文件(pdf或图像(。我想处理这个错误。我做了一些研究,发现它可以在global.asax中处理,但我不确定必须做什么。据我所知,我必须在global.asax文件中处理它,并将其重定向到自定义错误页面。有人能建议一下自定义错误页面应该是什么以及如何创建的吗?

它应该是HTML页面、jpg文件还是aspx文件?它的内容应该是什么?我可以将其重定向到发生错误的同一页面吗?如果是的话,那么我就可以更容易地在同一页面上显示错误消息。

更新我做了客户端验证来限制用户上传大文件。但仍然想知道如何在服务器端解决这个问题。

超过了处理最大请求长度

您可以在Global.aspx文件中检查Request.TotalBytes属性,如果TotalBytes超过了您的限制,则可以将请求重定向到错误页面。

错误可以在Global.asax: Application_Error()中处理如下:

var ex = Server.GetLastError();
var httpException = ex as HttpException ?? ex.InnerException as HttpException;
if (httpException.WebEventCode == WebEventCodes.RuntimeErrorPostTooLarge)
{
  Response.Clear();
  Server.ClearError();
  //Do whatever to handle
  return;
}

编辑web.config。

<system.web>

根据需要更改值

<httpRuntime maxRequestLength="4096" />