1

我关注了这些链接:

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

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

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

这是我的代码@ 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。(我没有设置它,因为它对我来说并不重要。)

希望你能帮我解决这个问题。谢谢

4

1 回答 1

1

你可以加

 <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>

您重定向到错误页面的位置...

于 2016-04-05T23:55:01.210 回答