sto utilizzando metodi asincroni nei miei controllori WebAPI:Configurare richiesta di timeout per i controller WebAPI
public async Task<HttpResponseMessage> SampleMethod(int subscriptionNumber, DateTime departureDate)
{
// [...]
}
Come si configura il timeout di richiesta? L'operazione può richiedere fino a un paio di minuti e devo assicurarmi che la richiesta non vada in timeout.
In MVC è presente un attributo denominato [AsyncTimeout]
. C'è un equivalente in WebApi? Può essere configurato globalmente?
Sta dicendo che IIS/ASP.NET/WebApi2 non ha timeout incorporati? – jgauffin
Sì, non hanno niente finora. WebAPI supporta i token di cancellazione per annullare l'operazione, in modo che tu possa provare a utilizzare CancellationTokenSource.CancelAfter per ottenere ciò, ma come ho accennato, dal codice –
Anche il seguente estratto rivela un altro motivo: "Il modo per annullare le richieste HTTP è per annullarle direttamente su HttpClient, poiché le richieste multiple possono riutilizzare le connessioni TCP all'interno di un singolo HttpClient e quindi non è possibile annullare in modo sicuro una singola richiesta senza influire anche su altre richieste. " –