问题标签 [request-cancelling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 带有 CancellationToke 的 AddScoped 依赖项
我有一个针对每个 REST API 请求的 .NET 核心依赖项。它是Startup.ConfigureServices
通过调用添加的AddScoped
。
我想为此添加取消支持。如果我将 a 添加CancellationToken cancellationToken
到任何控制器操作的参数中,我可以获得一个令牌,如果客户端请求是,则该令牌会被取消。然后我可以将该令牌传递给我的依赖项上的所有方法。
但是,依赖项的范围仅限于请求,因此通过操作将令牌向下传递给方法感觉没有必要 - 我可以CancellationToken
以某种方式将其添加到范围依赖项中吗?
c# - 取消并行进程
我有一个 MainProcess.cs 和 ChildProcess.cs。Mainprocess 用于收集所有需要的信息并将所有数据提交到并行 foreach 循环。子进程将调用单独的 API。
主进程.cs
ChildProcess.cs
数据保存如下表。
图1
有 MainProcess 类,它有一个并行运行任务的方法。有一个 ChildProcess 类,它有“ProcessMethod”。在“ProcessMethod”中,我调用单独的 API 来做一些工作。上面提到的代码和程序是 100% 正确工作的。
但我的问题是,有时我需要取消处理。让我们使用下面的“图 2”来使这更容易理解。
图 2
根据上图,整个过程大约在 10 秒内完成。在第 4 秒,我需要取消处理。(呼叫 1 和呼叫 5 已经返回响应)呼叫 2、呼叫 3、呼叫 4 都发送了请求,但仍然没有收到响应。
我需要做的是,在给定时间取消所有进程。就像,我在浏览器中输入了一个 Url 并回车。在出现网页之前,我关闭了浏览器。所以我不在乎回复。
我尝试使用取消令牌来做到这一点。但是我坚持的地方是,我无法取消对特定资源 ID 的 api 调用。
然后我修改了 ChildProcess.cs 的代码。
添加了实例变量
然后改变
我知道,它应该必须使用下面的代码来取消过程。
但问题是如何从不同的函数中取消特定的resourceId 的进程?(取消特定resourceId的进程,因为ProcessMethod可以并发调用。如果是处理第二个resourceId的进程,应该不会影响到第二个进程。第一个resourceId批次应该关闭/取消)
有哪位专家可以帮助我解决这个问题吗?
javascript - 尽管有适当的 Access-Control-Allow-* 标头,但 CORS ajax 调用失败
我正在从第三方托管的脚本到我的端点执行 ajax 调用。
在 Chrome 中,预检调用如下所示:
我将端点的服务器配置为允许每个标头、方法和来源,在响应标头中可见。尽管如此,Chrome 还是不断取消后续的 POST 请求。
我错过了什么?
编辑:如果我从服务器响应中删除访问控制允许标头,Chrome 会在控制台中写入正确的错误消息“请求标头字段内容类型不允许访问控制允许标头在预检响应中。” 并且 POST 请求在网络选项卡中被标记为(失败)。添加 access-control-allow-headers :" * "时,没有错误信息,POST请求被标记为(canceled)
谢谢
vue.js - 在 then() 而不是 catch() 中捕获 axios 取消
我制作了一个多上传文件表单。
用户取消后,一旦使用 cancel() 取消了相应的 axios 调用,我就会有一种奇怪的行为。我的 axios 调用被捕获在 then() 中,而它应该被捕获在 catch() 中。then() 内部的响应返回undefined
.
我很难确定我是否在前端部分做错了什么,我认为我的电话可能缺少一些标题或者它可能在后端部分?
服务本身定义如下
在文件对象执行时调用取消
reactjs - 未处理的拒绝 (AbortError):操作已中止
编辑:仅在 Firefox 中反应应用程序崩溃。当我使用 chrome 时,反应应用程序不会崩溃。如何处理Firefox中的崩溃?
我想在卸载组件时取消 http 请求。我正在使用 fetch() 和 AbortController。
我遵循本指南。
但是当组件卸载时,反应应用程序崩溃。
这是我的代码:
iis - 如何将 API 取消令牌与 IIS 重写和多个网站一起使用?
我的 IIS 设置:
我的 IIS 中有多个带有重写规则的网站,这些规则将 API 请求从默认网站传输到其他网站,这意味着 API 请求会到达默认网站,然后被重写到 InternalSite1,然后再到 InternalSite2。
问题:
当我尝试关闭一个长时间运行的 API 请求并访问默认网站并转到另一个内部网站时,我无法使用带有 ClientDisconnectedToken 的 CancellationToken 来关闭连接。连接在 API 端点、内部网站上保持打开状态,但在默认网站上关闭。我知道这一点是因为我在 API 端点上运行了一个调试器,并且我使用 IIS 工作进程模块来查看每个网站的应用程序池上的并发连接。
为什么我认为问题在于重写或拥有多个网站:
当我直接调用其中一个内部网站时,这意味着我绕过了重写规则和使用多个网站,取消工作。我在我的 API 客户端 Postman 中点击取消,在 API 调试器会话中我可以看到 API 请求停止。
有谁知道如何关闭那些内部网站连接、使用重写规则转发取消请求或其他方法?
c# - 为什么这个程序停止运行?等待异常处理和取消问题
我的任务是编写异步控制台应用程序,并面临“等待”异常处理的问题。任务是我需要异步执行一些特定的计算,并且能够取消该计算(在它运行时)。
所以,我有这样的代码:
以及异步方法的代码:
相应的消息负责打印结果(即打印任务是否被取消、是否出现异常、任务是否成功完成等)。
所以,当我取消任务,或者只是输入无效值(这会导致 ArgumentException 然后是 AggregateException),我的程序(在某些运行中)只是退出,但是当我切换到task.Wait()
try..catch 构造并删除“async”关键字时方法签名,它在所有运行中都能正常工作。
我想不通,是CLR线程池的一些调试功能,还是我写错了?欣赏任何链接或文献。