超出最大请求长度,在错误页上无法重定向



我遵循这些链接:

  1. 捕获"最大请求长度超过"和
  2. ASP。如何在上传大文件时显示错误页面(超过最大请求长度)?

显示错误页面来处理上传超过web.config中的maxRequestLength的文件

但我的问题是,它不是重定向到错误页面(消息说,网页不能显示)。我不知道我错过了什么。

这是我的代码@ Global.asax:

void Application_Error(object sender, EventArgs e) 
{       
    if (IsMaxRequestLengthExceeded(Server.GetLastError()))
    {
        this.Server.ClearError();
        this.Server.Transfer("~/Error.html");
    }
}
private bool IsMaxRequestLengthExceeded(Exception ex)
{
    Exception main;
    HttpUnhandledException unhandledEx = (HttpUnhandledException)ex;
    if (unhandledEx != null && unhandledEx.ErrorCode == -2147467259)
    {
        main = unhandledEx.InnerException;
    }
    else
    {
        main = unhandledEx;
    }
    HttpException httpException = (HttpException)main;
    if (httpException != null && httpException.ErrorCode == -2147467259)
    {
        if (httpException.StackTrace.Contains("GetEntireRawContent"))
        {
            return true;
        }
    }
    return false;
}

和@ web.config:

<httpRuntime executionTimeout="1200" />
<customErrors defaultRedirect="Error.html" mode="On">
</customErrors>

它发现当maxRequestLength未初始化时,默认设置为4MB。(我没有设置它,因为它对我不重要。)

希望你能帮我这个忙。由于

可以添加

 <httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404" subStatusCode="13" />
  <error statusCode="404" subStatusCode="13" prefixLanguageFilePath="" path="http://localhost:1899/ErrorUpload.aspx" responseMode="Redirect" />
</httpErrors>

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

相关内容

  • 没有找到相关文章

最新更新