我点击了以下链接:

  • Catching "Maximum request length exceeded"
  • ASP.NET - how to show a error page when uploading big file (Maximum request length exceeded)?

  • 显示错误页面以处理maxRequestLength中超过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。 (我没有设置它,因为它对我并不重要。)

    希望你能帮我这个忙。谢谢

    最佳答案

    你可以加

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

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

    09-11 20:37