我遵循这些链接:
- 捕获"最大请求长度超过"和
- ASP。如何在上传大文件时显示错误页面(超过最大请求长度)?
显示错误页面来处理上传超过web.config
中的maxRequestLength
的文件
但我的问题是,它不是重定向到错误页面(消息说,网页不能显示)。我不知道我错过了什么。
这是我的代码@ 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>