就像MVC一样,WebApi在异步ASP.NET管道(即execution timeout is unsupported)上运行。
在MVC中,我使用[AsyncTimeout]
过滤器,WebApi没有此过滤器。那么如何在WebApi中使请求超时?
最佳答案
对于您要超时的每个端点,请通过以下方式传递CancellationToken
:
[HttpGet]
public Task<Response> GetAsync()
{
var tokenSource = new CancellationTokenSource(_timeoutInSec * 1000);
return GetResponseAsync(tokenSource.Token);
}
关于c# - Web Api请求超时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24403832/