gpt4 book ai didi

c# - Web API 2 Asp.Net - 设置显式超时值

转载 作者:行者123 更新时间:2023-12-03 05:58:31 24 4
gpt4 key购买 nike

我有一个 Asp.NET Web API 2。我的客户端调用特定的操作方法,但我需要某种方式来设置超时值

我需要超时值,因为如果操作方法在 40 秒内没有返回任何内容,我希望客户端采取适当的操作。 (基本上这是我选择的任意限制......所以如果它没有完成它的工作......即没有在 40 秒内返回有效的 JSON,我们将不得不假设有什么东西正在发生Azure 上的时间太长,我们将执行回滚)。

此外,如果发生超时,我希望有人可以回滚事务。

如果有帮助,我将使用 UnitOfWorkActionFilterNHibernate

Controller 和操作方法都是异步的,并且我显式捕获 ExecuteAsync 方法以及 CancellationToken 变量。

但是,我不知道取消此调用或使用 CancellationToken 变量的方法。

如果需要的话我可以发布代码。

我确实在一些地方读到,由于 WebApi2 是异步的,我可能无法取消此操作!

关于如何解决这个问题有什么建议吗?

最佳答案

我认为对请求设置超时是错误的方法,因为您将看不到 40 秒内发生的情况。

而是发出 ajax Web 请求,然后发出后续 Web 请求以查看该过程是否已完成。

例如,

  1. 以某种方式将请求与初始请求一起排队。
  2. 编写一些内容来从队列中拾取并处理该项目。这也意味着如果出现问题,您可以在此时回滚。您还需要将项目的状态存储在某处。
  3. 用 Javascript 编写一个定期轮询,每 5 秒发出另一个 ajax 请求,以查看该请求是否已被处理。

关于c# - Web API 2 Asp.Net - 设置显式超时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36588757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com