【问题标题】:Handling maximum request length exceeded处理超出最大请求长度
【发布时间】:2014-06-20 10:05:44
【问题描述】:

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

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

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

【问题讨论】:

  • 我不在我的电脑上,但有两种方法可以做到这一点。一种是通过客户端 js,您可以阻止人们以这种方式发布大文件。第二种方法是,当您收到请求时检查请求长度是否大于要求,您退出并向用户返回错误。当我开始工作时,我会为你写下答案。
  • @dmportella 感谢您的回复。我想知道处理错误的方法(即如何向用户返回错误)
  • 管理员,请关闭这个“这是最好的方法”,因为:就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您认为此问题可以改进并可能重新打开,请访问帮助中心获取指导。
  • 另外,100% 是复制品和假货
  • @dmportella 对处理这个有什么建议吗?我在客户端进行了验证以限制上传文件,但也想知道如何在服务器端进行处理

标签: c# asp.net global-asax unhandled-exception maxrequestlength


【解决方案1】:

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

【讨论】:

  • 好的。我会试试这个。但是你能解释一下错误页面应该有什么文件吗?应该是图片还是html页面还是aspx页面?
  • 错误页面应该是您可以将请求重定向到的某个 aspx 页面。
  • 好的。谢谢。我会尝试你的答案并让你知道
  • 不。您提供的解决方案不起作用。它不会重定向到其他页面,但会保持在同一页面上并显示消息“此网页不可用”
  • 看来你没有给出错误页面的正确路径。
【解决方案2】:

编辑您的 web.config。

<system.web>

根据需要更改值

<httpRuntime maxRequestLength="4096" />

【讨论】:

  • 它不应该处理错误;您应该更改它以便能够处理错误。查看更多。 ezineasp.net/post/ASP-Net-FileUpload-Size-Limit-Example.aspx
  • 他不想阻止错误他想优雅地处理错误。
  • 我想保持最大上传大小不变,并在用户尝试上传大于指定大小的文件时处理异常。
【解决方案3】:

错误可以在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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多