C# 重定向到超出文件上载大小时出错
当最大文件上载大小超过DDS时,我试图将用户引导到错误页面。为此,iam执行以下操作:C# 重定向到超出文件上载大小时出错,c#,asp.net,httpmodule,C#,Asp.net,Httpmodule,当最大文件上载大小超过DDS时,我试图将用户引导到错误页面。为此,iam执行以下操作: public void Init(HttpApplication application) { application.BeginRequest += new EventHandler(application_BeginRequest); } void application_BeginRequest(object sender, EventArgs e) {
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(application_BeginRequest);
}
void application_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
if (context.Request.ContentLength > 4096000)
{
context.Response.Redirect("~/Error.aspx");
}
}
public void Dispose()
{
}
但在上载大于最大文件大小的文件时,会显示“连接重置”错误。
我应该怎么做。即使在应用程序启动之前,ASP.NET运行时也可能拒绝该请求。检查web.config中设置的最大请求长度-该值应大于应用程序预期的值: IIS6/IIS7(经典管道和集成管道):
IIS7(综合管道):
希望这会有所帮助
--Pavel好的,您可能会遇到ThreadAbortException,这就是连接重置的原因 请参阅这篇知识库文章以了解解决方法:
--Pavel检查这个问题:我认为要从处理程序正确执行此操作,您需要在发送响应/重定向之前读取请求中的所有数据。或者,您可以从ISAPI筛选器执行此操作,避免读取数据。您可以使用toolkit AsyncFileUpload控件,然后在客户端捕获错误并重定向到错误页面
函数onUploadError()
{
//重定向到错误页面。
}
函数uploadComplete()
{
}
使用以下方法,原因可能只是重定向到本地站点:
这似乎不起作用,当
服务器是本地的(通过使用
本地主机、本地ip或
).浏览器刚刚启动
反应完全像服务器一样
断开了连接-连接
已重置对等方/连接的重置
(FF)/无法显示网页(IE)
我在context.Response.Redirect(“~/Error.aspx”)上放置了一个调试器;“就到这一点了。@Niraj:你能显示一个警告说上传的文件超过了限制吗?”?
<system.web>
<!-- The value is in KB -->
<httpRuntime maxRequestLength="4096" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- The value is in bytes -->
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>
<asp:AsyncFileUpload ID="fileUpload"
runat="server" OnClientUploadError="onUploadError"
OnClientUploadComplete="uploadComplete"
OnUploadedComplete="OnUploadComplete" />
<script language="javascript" type="text/javascript">
function onUploadError()
{
//Redirect to error page.
}
function uploadComplete()
{
}
</script>