我按照这些链接:
显示错误页面以处理超过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。 (我没有设置它,因为它对我来说并不重要。)
希望你能帮助我。感谢
答案 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>
您重定向到错误页面的位置...