я следующий метод в мой контроллер Web API (длинные методы погонных честь отмены лексемы, то есть они не будут работать, если аннулирование было предложено):Может ли клиент отменить запрос Web Api?
public async Task<IHttpActionResult> ApiMethod(CancellationToken cancellationToken)
{
await LongRunningNetworkOperation1(cancellationToken);
await LongRunningNetworkOperation2(cancellationToken);
return Ok();
}
Клиент имеет следующий код для вызова мой веб-контроллер апи:
using (var httpClient = new HttpClient())
{
httpClient.Timeout = TimeSpan.FromMilliseconds(3000);
try
{
// Sending DELETE request
HttpResponseMessage deleteMessage = await httpClient.
DeleteAsync("http://localhost:80/api/apiMethod");
}
catch (Exception e)
{
// Timeout occurred.
}
}
Если время запроса клиента перед «LongRunningNetworkOperation2» называется, будет CancellationToken предотвратить «LongRunningNetworkOperation2» от бега? Другими словами, может ли клиент сигнализировать веб-api, чтобы остановить выполнение определенного запроса?
Знаете ли вы о каком-либо месте, где это конкретное поведение отмены документировано? – Nick
@Nick: поиск на сайте asp.net не работает прямо сейчас, поэтому я не уверен, действительно ли он официально зарегистрирован или нет. –