错误页面上超过最大请求长度不重定向

时间:2011-07-21 08:39:51

标签: asp.net error-handling .net-2.0 maxrequestlength

我按照这些链接:

  1. Catching "Maximum request length exceeded"
  2. ASP.NET - how to show a error page when uploading big file (Maximum request length exceeded)?
  3. 显示错误页面以处理超过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。 (我没有设置它,因为它对我来说并不重要。)

    希望你能帮助我。感谢

2 个答案:

答案 0 :(得分:1)

我能够找到解决maxRequestLength错误的另一种方法。我在这个链接中找到了它:

该解决方案由Rakesh Kumar Roy发表评论(发布详情:2009年2月13日,星期五,下午1:43)。这可能对其他程序员有帮助。 :d

答案 1 :(得分:0)

您可以添加

var successFn = function(){App.logDebug("played sound")},
    errorFn = function(error){App.logError("playing sound failed",error)};

var media = new Media("res/snd/_beep.wav", successFn, errorFn);
media.play();

之后

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

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