中断POST请求

问题描述:

我正在处理ASP.NET文件上传器,并且正在尝试解决以下问题: 假设服务器端HttpModule在某个时刻决定传入数据流太长而必须中止。因此,乍一看能够处理这种情况的代码将非常简单。像这样:中断POST请求

try { 
    ... 
    if (size >= maxSize) 
    throw new InvalidOperationException("File is too large!"); 
} 
catch (InvalidOperationException e) { 
    HttpContext.Current.Response.Write(e.Message); 
    HttpContext.Current.Response.End(); 
    return; 
} 

但是不幸的是,这是行不通的。似乎浏览器尚未收到响应并继续将数据传输到服务器。 有谁知道为什么这不起作用,以及如何解决?

尝试调用Response.Close()代替。这将立即关闭套接字连接。您可能需要事先致电Response.Flush()

+0

谢谢。我会检查这个。实际上我曾经解决过这个问题:我可以通过单独的并行GET请求获取“错误”状态,这通常是获取进度信息的责任。 – 2009-12-03 10:59:05