c# - 增加 Angular 2+ 和 ASP.NET Core WebAPI 应用程序中的超时

标签 c# angular asp.net-core asp.net-core-webapi

在我的 Angular 2+/ASP.NET Core MVC WebAPI 应用程序中,我有一个从客户端 UI 到服务器的长时间运行的 API 调用。请求在 30 秒后超时。我想在客户端或服务器端定义此特定 API 调用的超时。

我只找到了全局配置服务器超时的方法,这不是我想要的,因为 30 秒超时对于其他调用来说已经足够了。我还找到了通过管道 RxJS 的 timeout 运算符来减少客户端超时的解决方案。但是,据我了解,这不适合增加超时?

如何设置此特定请求的超时? 30 秒默认值从何而来?

(代码实际上并不重要,因为它是标准 API Controller 和标准 Angular HTTP 调用):

this.http.get('api/xyz').subscribe(d => { ... });

最佳答案

要解决超时问题,您可以使用 RxJs 中的timeout,如下所示

将时间(以毫秒为单位)传递给超时运算符

这里我设置了60秒作为超时,所以60秒后如果服务器没有响应就会抛出超时错误。

import ‘rxjs/add/operator/timeout’; 

...

this.http.get('api/xyz').timeout(60000).subscribe(d => { ... });

关于c# - 增加 Angular 2+ 和 ASP.NET Core WebAPI 应用程序中的超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55000027/

相关文章:

asp.net-core - 在重定向到客户端之前,如何在身份服务器中获取 id_token?

c# - .NET Core 6 MVC AddRazorRuntimeCompilation 破坏全局使用

c# - 从数据库中检索主键

c# - 跨线程操作对于使图形对象无效无效

c# - LINQ to XML 可选元素查询

Angular 2和masonry grid第三方库

css - Angular Material2 md-checkbox边框颜色

Angular 5 - ngSwitch 和 ngSwitchCase 不在 html 的真实元素上

c# - .NET Core 中的跨平台文件名处理

asp.net - 如何为 ASP.NET Core 应用程序配置 IIS 身份验证以使用 SQL Server