配置WebApi控制器的请求超时

jga*_*fin 10 c# asp.net-web-api2

我在我的WebAPi控制器中使用异步方法:

public async Task<HttpResponseMessage> SampleMethod(int subscriptionNumber, DateTime departureDate)
{
    // [...]
}
Run Code Online (Sandbox Code Playgroud)

如何配置请求超时?该操作可能需要几分钟,我必须确保请求不会超时.

在MVC中有一个名为的属性[AsyncTimeout].WebApi中是否存在等价物?可以全局配置吗?

Bor*_*lov 7

好问题,我建议从客户端处理这个 - 你总是可以在你的消费者代码中指定超时设置,即使它是ajax:

$.ajax({
url: "/ajax_json_echo/",
timeout: 1000,
...
Run Code Online (Sandbox Code Playgroud)

  • 是的,到目前为止他们没有任何东西.WebAPI支持取消令牌取消操作,这样你就可以尝试使用CancellationTokenSource.CancelAfter实现这一点,但正如我所提到的 - 从消费代码 (2认同)