ich die folgende Methode in meiner Web-api-Controller haben (die langen Lauf Methoden Kündigung Token ehren, dh sie wird nicht ausgeführt, wenn die Stornierung angefordert wurde):Kann ein Client eine Web API-Anfrage abbrechen?
public async Task<IHttpActionResult> ApiMethod(CancellationToken cancellationToken)
{
await LongRunningNetworkOperation1(cancellationToken);
await LongRunningNetworkOperation2(cancellationToken);
return Ok();
}
Der Client der folgende Code mein zu nennen hat web api Controller:
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.
}
}
Wenn die Anfrage Zeiten des Kunden, bevor "LongRunningNetworkOperation2" genannt wird, wird die CancellationToken "LongRunningNetworkOperation2" nicht ausgeführt werden? Mit anderen Worten, kann der Client der Web-API signalisieren, eine bestimmte Anfrage nicht mehr auszuführen?
Kennen Sie irgendeinen Ort, an dem dieses spezifische Aufhebungsverhalten dokumentiert ist? – Nick
@Nick: Die Suche auf der ASP.net-Website funktioniert derzeit nicht, also bin ich mir nicht sicher, ob es tatsächlich offiziell dokumentiert ist oder nicht. –