Asp.net 如何取消上载

Asp.net 如何取消上载,asp.net,file-upload,asp.net-web-api,jquery-forms-plugin,Asp.net,File Upload,Asp.net Web Api,Jquery Forms Plugin,我有一个asp.net web api页面,用户可以在其中上载一些文件。我正在使用。基于某些条件,我想取消服务器端的上传,但它不工作。无论我做什么,文件总是在asp.net返回错误之前进入服务器。例如,我可以在上载时保留以下内容: public async Task<HttpResponseMessage> Post(int id, CancellationToken token) { return Request.CreateErrorResponse(HttpStatus

我有一个asp.net web api页面,用户可以在其中上载一些文件。我正在使用。基于某些条件,我想取消服务器端的上传,但它不工作。无论我做什么,文件总是在asp.net返回错误之前进入服务器。例如,我可以在上载时保留以下内容:

public async Task<HttpResponseMessage> Post(int id, CancellationToken token)
{
    return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Cant upload");
}
这也不管用

我尝试在请求时禁用缓冲区:

public class NoBufferPolicySelector : WebHostBufferPolicySelector
{
    public override bool UseBufferedInputStream(object hostContext)
    {
        return false;   
    }        
}

config.Services.Replace(typeof(IHostBufferPolicySelector), new NoBufferPolicySelector());
没有游戏-它仍然上传所有文件,然后返回错误


我只需要取消上传请求。这是web api不可能实现的,还是我在这里遗漏了什么?

我也遇到了类似的问题,我能找到的阻止客户端上载数据的唯一(无可否认是笨手笨脚的)解决方案是关闭TCP连接:

var ctx = Request.Properties["MS_HttpContext"] as HttpContextBase;
if (ctx != null) ctx.Request.Abort();

这适用于IIS托管

我有完全相同的问题,我也找不到答案。这不会那么难…我和其他人也有类似的问题,见e。G
var ctx = Request.Properties["MS_HttpContext"] as HttpContextBase;
if (ctx != null) ctx.Request.Abort();