asp.net-core - 在 .Net Core 中,如果调用者超时/关闭连接,api 中的请求会发生什么?

标签 asp.net-core .net-core asp.net-core-webapi

我目前有一个使用 .Net Core 创建的 restful api。第三方可以调用我的 api,并且在返回响应之前从我的 api 进行一些额外的调用。

在第三方请求超时/他们取消请求的情况下,.net core api 中的请求会发生什么。它会继续保持事件状态并返回响应,还是线程/调用会停止?

如果它会停止,我如何确保不会发生这种情况?

最佳答案

这取决于您的实现。

您可以注入(inject) CancellationToken到每个 Controller 端点并使用它来检查请求是否已被取消。

默认情况下,当浏览器取消请求时,将从服务器接收该信息并请求取消。旗帜RequestAborted然后在 HttpContext 上设置可在每个请求中或通过 IHttpContextAccessor在 Controller 端点之外。

之前的 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

关于asp.net-core - 在 .Net Core 中,如果调用者超时/关闭连接,api 中的请求会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54291837/

相关文章:

asp.net-core - 如何使用 .NET Core 自定义 Web API 中的错误响应?

asp.net-core - 无法使用 ASP.NET Core Web 应用程序在 VS.2017 中启用迁移

c# - ASP.NET Core 中从 MySQL 服务器获取数据

.net - 如何捕获asp.net核心中的401错误?

asp.net-core - .NET Core 静态代码分析工具

asp.net-core - .NET CORE 2.0 在尝试激活时无法解析服务类型

c# - 要在 Web api 中发布的 TimeSpan 属性的有效值? C#

c# - 如何在 ASP.NET Core 中添加 Mime 类型

c# - ASP.NET Core 2.0 应用程序超时时重定向到绝对 URL

c# - “IServiceCollection”不包含 'AddControllers' 的定义