在.Net Core中,如果调用方超时/关闭连接,在api中发生什么请求?

发展

我目前有一个使用.Net Core创建的Restful API。第三方可以调用我的api,并在返回响应之前通过我的api进行一些其他调用。

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

如果它停止了,我怎么能保证不会发生这种情况?

阿萨米

这取决于您的实现。

您可以CancellationToken向每个控制器端点注入a并使用它,以检查请求是否已被取消。

默认情况下,当浏览器取消请求时,将从服务器接收该信息,并请求取消。该标志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/zh-cn/dotnet/api/microsoft.aspnetcore.http.httpcontext.requestaborted?view=aspnetcore-2.2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

.NET Standard与.NET Core

NET包中TCP连接是否关闭?

.NET中的“关闭”是什么?

如果在NET Core库中添加PackageReference net46,会发生什么情况?

请求标头中的JWT在接收.Net Core API中是不同的

ASP.NET Core 2.0如何增加launchSettings.json中的IIS Express请求超时

.NET Core SignalR,服务器超时/重新连接问题

如果未经授权的JWT在HTTP请求中向Web API .net Core 2发送了未经授权的JWT,则中止连接

通过.NET Core Api从请求获取文件

Ingenico .net SDK集成-进行任何API调用时未授权和连接关闭异常

如果按官方文档中的说明进行调用,为什么ASP.NET API调用会冻结?

在.net Core Web API中发送自定义错误响应的最佳方法是什么

使用serilog关闭ASP.NET Core 2.2中的MVC请求日志记录

在.net Core C#中并行校准API调用的最佳方法是什么?

使用带有非ASCII字符的标头在ASP.NET Core API 2.1中发送请求

如何在ASP .NET Core 3.1中设置请求超时

.Net Core API方法未调用

我需要在ASP.NET Web API项目/令牌请求中发送的数据是什么?

如何查看asp.net API中的Ajax调用请求了什么dataType

dot net core中基于web api调用的派生配置

NET Core Api 中收到的 Angular POST 请求为 Null

如果 .Net Core 可以在 Windows 上运行,为什么不能在 .Net Framework 中引用 .Net Core DLL?

为什么在 ASP.NET Core 2.2 中自动 400 响应中发送 traceid

Npgsql 与 .net core web api 中的 ssl 证书的连接

在 ASP.NET Core 中发出发布请求时未调用控制器操作方法

本地 axios 调用无法连接到本地 .net core API

如果另一个 API 调用当前正在 ASP.NET Core 中运行,则拒绝 API 调用

如何代表流调用 .Net Core 中的下游 API?

.Net 框架与 .Net Core