В .Net Core, что происходит запрос в API, если звонящий тайм-аут / закрывает соединение? - PullRequest
0 голосов
/ 21 января 2019

В настоящее время у меня есть спокойный API, созданный с использованием .Net Core. Третья сторона может позвонить мне в API, и некоторые дополнительные звонки будут сделаны из моего API перед возвратом ответа.

В случае, когда третьи стороны запрашивают тайм-аут / отменяют запрос, что происходит с запросом в .net core api. Будет ли он продолжать работать и возвращать ответ, или поток / вызов прекратится?

Если это остановится, как я могу гарантировать, что этого не произойдет?

1 Ответ

0 голосов
/ 21 января 2019

Это зависит от вашей реализации.

Вы можете ввести CancellationToken в каждую конечную точку контроллера и использовать ее, чтобы проверить, был ли отменен запрос или нет.

По умолчанию, когда браузер отменяет запрос, эта информация поступает с сервера и запрашивается отмена.Затем устанавливается флаг RequestAborted для HttpContext, доступного в каждом запросе или через IHttpContextAccessor за пределами конечных точек контроллера.

До ASP.NET Core 2.0 была проблема при использовании IIS в качествеобратный прокси-сервер.Он не распознает отмену запроса.

Некоторые ресурсы:

https://odetocode.com/blogs/scott/archive/2018/09/12/cancellationtokens-and-aborted-asp-net-core-requests.aspx

https://andrewlock.net/using-cancellationtokens-in-asp-net-core-mvc-controllers/

https://dev.to/joaofbantunes/using-cancellation-tokens-on-aspnet-core-mvc-actions-57hi

https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpcontext.requestaborted?view=aspnetcore-2.2

...