używam metody async w moich kontrolerami WebAPI:Konfiguracja limit czasu żądania dla kontrolerów WebAPI
public async Task<HttpResponseMessage> SampleMethod(int subscriptionNumber, DateTime departureDate)
{
// [...]
}
Jak skonfigurować limit czasu żądania się? Operacja może zająć do kilku minut i muszę się upewnić, że żądanie nie zostanie przekroczone.
W MVC znajduje się atrybut o nazwie [AsyncTimeout]
. Czy istnieje odpowiednik w WebApi? Czy można go skonfigurować globalnie?
Mówisz, że IIS/ASP.NET/WebApi2 nie ma żadnych wbudowanych limitów czasu? – jgauffin
Tak, nie mają one nic do tej pory. WebAPI obsługuje tokeny anulowania, aby anulować operację, aby można było spróbować użyć funkcji AnulowanieTokenSource.CancelAfter, aby to osiągnąć, ale jak już wspomniałem - z konsumpcyjnego kodu –
Również poniższy fragment ujawnia nieco więcej, dlaczego: "Sposób anulowania żądań HTTP jest aby anulować je bezpośrednio w HttpClient, ponieważ wiele żądań może ponownie wykorzystywać połączenia TCP w jednym HttpClient, więc nie można bezpiecznie anulować pojedynczego żądania, nie wpływając również na inne żądania. " –