超出最大请求长度,错误页面未重定向

发布于 2024-11-25 04:03:12 字数 1658 浏览 1 评论 0原文

我点击了以下链接:

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

显示错误页面以处理超过 web.config< 中的 maxRequestLength 的上传文件/code>

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

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

希望你能帮助我。谢谢

I followed these links:

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

to display error page to handle uploading files exceeding the maxRequestLength in web.config

But my problem is, it is not redirected to the error page (the message says that the webpage cannot be displayed ). I do not know what I'm missing.

Here's my Code @ 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;
}

And @ web.config:

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

It found out that when maxRequestLength was not initialized, it is set by default to 4MB. (I didn't set it because it is not important to me.)

Hope you could help me with this. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遮云壑 2024-12-02 04:03:12

之后添加...

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

重定向到错误页面的位置

You can add

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

just after

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

where you redirect to a Error Page...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文