using an asynchronous controller的MSDN文档提到在您想要为用户提供取消请求的方法时选择异步控制器。
但是,我找不到任何与实际允许用户取消异步请求相关的文档。有没有办法向ASP.NET和/或ASP.NET MVC框架表明应该取消请求?
答案 0 :(得分:2)
如果您调用的异步API提供了取消请求的方法(通过.NET 4的CancellationToken类或通过CancelAsync方法),则必须调用它来取消正在进行的任何异步操作。否则,调用AsyncManager.Finish(通过控制器的AsyncManager属性)强制MVC框架立即调用您的XxCompleted方法。请注意,AsyncManager.Finish实际上只是在您需要避免没有其他取消方式的请求时(例如在没有CancellationToken的情况下调用BeginXx / EndXx)并且在其他情况下不会总是有效。
答案 1 :(得分:1)
默认超时为45 seconds,因此如果没有响应,服务器将取消该超时。 他们不允许用户取消请求取消一个http请求,你正在创建另一个http请求,这不是一个正确的方法。