客户端可以取消 Web Api 请求吗?

2023-12-24

我的 Web api 控制器中有以下方法(长时间运行的方法支持取消令牌,即如果请求取消,它们将不会运行):

public async Task<IHttpActionResult> ApiMethod(CancellationToken cancellationToken)
{
    await LongRunningNetworkOperation1(cancellationToken);
    await LongRunningNetworkOperation2(cancellationToken);

    return Ok();
}

客户端有以下代码来调用我的 Web api 控制器:

using (var httpClient = new HttpClient())
{
    httpClient.Timeout = TimeSpan.FromMilliseconds(3000);

    try
    {
        // Sending DELETE request
        HttpResponseMessage deleteMessage = await httpClient.
                             DeleteAsync("http://localhost:80/api/apiMethod");
    }
    catch (Exception e)
    {
        // Timeout occurred.
    }
}

如果在调用“LongRunningNetworkOperation2”之前客户端请求超时,cancellationToken 是否会阻止“LongRunningNetworkOperation2”运行?换句话说,客户端是否可以向 Web api 发送信号以停止运行某个请求?


客户端可以向 Web API 发送信号以停止运行某个请求吗?

理论上是的。取消HttpClient应关闭底层 TCP/IP 连接。作为响应,ASP.NET 堆栈应该检测其客户端的丢失,并取消 WebAPICancellationToken.

在实践中,这取决于完成程度HttpClient and WebAPI实现是您正在使用的。取消不一定是保证,但我希望它至少适用于桌面HttpClient.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

客户端可以取消 Web Api 请求吗? 的相关文章

  • 在 ASP.NET 中实现“记住我”功能

    实施的最佳方式是什么 remember me ASP NET 网站上的功能 我应该使用自定义cookie还是有更简单的方法 您是否使用内置的AuthenicationASP NET 提供的服务 如果是这样 那就很容易了
  • 如何对ArrayList(int)进行排序

    我怎样才能排序Arraylist按升序和降序排列 例子 ArrayList list new ArrayList list Add 2 list Add 8 list Add 0 list Add 1 如何按升序和降序对上面的列表进行排序
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • FormsAuthentication:安全吗?

    Using 表单验证构建成asp net创建一个为经过身份验证的用户创建 cookie 的登录系统非常快速且简单 FormsAuthentication SetAuthCookie uniqueUsername false 与中的一些代码配
  • 需要一个好的 ASP.NET 菜单

    我正在寻找一个可以在 ASP NET 中使用的好菜单 我目前使用的是asp菜单 我需要 它可以在 IE 6 7 8 Firefox 和 Safari 中运行 我还需要它不要给页面客户端增加大量开销 我需要能够从数据库加载它 编写您自己的服务
  • Blazor WeatherForecast 示例如何工作?

    Blazor 的 Hello World 项目模板包括天气预报示例 除了计数器增量示例之外 我用这个来看看幕后发生了什么 我似乎无法弄清楚 基本上 如果我注释掉获取天气 json 数据的代码行 那么我会无限期地看到 正在加载 到目前为止是有
  • 依赖注入:没有为此对象定义无参数构造函数

    我正在尝试使用依赖项注入 NET Framework 4 6 ASP NET MVC 但收到错误 No parameterless constructor defined for this object 如果我还提供一个无参数构造函数Hom
  • 在学习 Ajax 之前我应该​​先学习 Xml 和 Javascript 吗?

    A 由于 Ajax 是基于 Javascript 和 Xml 的 我应该在学习 Ajax 之前学习 Xml 和 Javascript 吗 B 即使了解 Javascript 和 Xml 不是必须的 如果我了解 Javascript 和 Xm
  • 打印带有图像的 html(每个图像在单独的页面上)

    我有一个带有图像的 HTML img img img img 打印时 我希望每个图像都位于单独的页面上 根据打印尺寸 现在我把图像从中间切掉了 有什么办法可以解决吗 您可以尝试以下方法 p p
  • Visual Studio 2010 - 在调试期间查看列表导致超时

    我正在尝试调试一个项目 突然遇到一个问题 如果我尝试查看它 枚举任何对象集合都会导致超时 如果我正常运行该程序 就没有问题 如果我尝试查看任何集合 例如列表 我会收到超时错误 整个事情就会崩溃 我认为我的一个更复杂的集合可能出了问题 所以我
  • 如何强制网站的某些部分在 SSL 下浏览?

    我们网站上的某些部分或页面涉及敏感的用户或帐户信息 我想强制用户在 HTTPS 下浏览这些页面 而其他包含公共内容的页面应在 HTTP 下可用 我打算在 IIS 上安装 url Rewrite 模块并编写规则来实现此目的 我不知道如何在 w
  • PreRequestHandlerExecute 中的会话为空

    在我的 ASP NET 4 0 应用程序中 我在 global asax cs 中有一个 PreRequestHandlerExecute 的事件处理程序 我想访问会话中的数据 大多数时候 会话是被定义的 但有时它是空的 有人可以解释一下什
  • 最佳实践:ASP.NET 中的 CSS 或主题?

    什么时候应该使用 ASP NET 主题 什么时候应该使用 CSS 使用其中一种相对于另一种有哪些优点或缺点 我建议使用 CSS 而不是主题 原因是在 CSS 中 您可以修改样式以使其适用于所有浏览器 您可以对主题做同样的事情 但微软的设计师
  • 如何将整个 POST 数据转储到 ASP.NET 中的文件中

    我目前正在尝试将一个应用程序从 asp net 移植到 php 但是我遇到了困难 需要有人帮忙 我需要将通过 POST 收到的 aspx 中的所有数据转储到文件中 但我不知道如何执行此操作 有任何想法吗 您可以使用Request 对象的In
  • 如何在asp.net背后的代码中获取css样式

    我需要从 asp net c 中的代码后面获取 css 样式 在网上没有找到解决方案 是否可以直接从 styles css 文件获取它 还是需要解决方法 我在我的网络应用程序中使用主题 但我还需要进行一些服务器处理 并且我需要 ccs 文件
  • IIS Express 捕获所有子域 url

    我正在寻找 IIS Express 中子域包罗万象 url 的解决方案 基本上 我环顾四周并找到了如何在 IIS Express 中创建域 子域 它很容易找到 我所要做的就是在 IIS Express 的 ApplicationHost c
  • WebApi 自定义 JsonConverter 未调用

    我为 Guid 实现了一个自定义 JsonConverter 如果我在像这样序列化的类的属性 Guid 类型 上声明它 JsonConverter typeof JsonGuidConverter 然后它被调用并且工作正常 但是 我想 自动
  • C# 获取数据表中所有重复行的计数

    我通过运行存储过程来填充数据集 并且从数据集中填充数据表 DataSet RawDataSet DataAccessHelper RunProcedure storedprocedureName this will just return
  • JWT - 配置授权服务器并将颁发者设置为其本身

    我正在尝试按照本指南设置授权服务器 http bitoftech net 2014 10 27 json web token asp net web api 2 jwt owin authorization server http bito
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其

随机推荐

  • NHibernate 从 SymbolSource.org 加载符号

    我希望能够调试 NHibernate 但我从未加载过任何符号SymbolSource org前 我需要在 Visual Studio 中输入什么 url 才能加载 NHibernate 的符号 以便我可以正确调试它 我正在运行 NHiber
  • 当内容扩展超过窗口大小时,在绝对定位元素上设置 100% 高度

    因此 在阅读 Stack Overflow 和网络之后 我发现实现 100 高度有两个主要技巧 在 HTML 和 BODY 上设置 height 100 Set your element to have either 高度 100 或 顶部
  • 无法以编程方式滚动到 JList 中的最后一项

    我有一个 JList 嵌套在 JScrollPane 中 当我向 JList 添加项目时 我希望 JScrollPane 自动滚动到 JList 的底部 以便最后一个项目可见 为此 我有以下代码 getWordListScroller ge
  • 在 Go 中要求 HTTP 基本身份验证的惯用方式?

    情况 我正在使用 Gorilla 的 mux 作为路由器构建 REST API 我想知道如何使用简单的 HTTP 基本身份验证来保护特定路由 我不需要从文件或任何外部源读取凭据 我真的只想通过硬编码的 HTTP 基本身份验证用户名和密码来保
  • ANTLR 入门并避免常见错误

    我已经开始学习 ANTLR 并且拥有 2007 年的书 The Definitive ANTLR Reference 和 ANTLRWorks 用于创建语法的交互式工具 而且 作为这样的人 我从第三章开始 针对不耐烦的人的快速浏览 这是一个
  • PBS 上的 Python 脚本失败,并显示错误 =>> PBS:作业被终止:ncpus 37.94 超出限制 36(总和)

    当我在 PBS 调度程序上运行 python 脚本 使用 Miniconda 时 出现标题中提到的错误 我认为 numpy 正在做一些多线程 处理 但我无法阻止它这样做 我将这些行添加到我的 PBS 脚本中 export MKL NUM T
  • 如何在 JAX-RS 中映射动态 JSON

    我必须使用 JAX RS Resteasy 作为实现 将 JSON 映射到 Java PoJos 问题是 JSON 是动态的 看这个例子 typeCode SAMPLE data id COMMENTS answerValue type Y
  • Ruby 的 Enumerator 对象如何在内部迭代器上进行外部迭代?

    根据 Ruby 的文档 Enumerator 对象使用each方法 枚举 如果没有提供目标方法to enum or enum for方法 现在 让我们以下面的猴子补丁及其枚举器为例 o Object new def o each yield
  • 使用 CXF 时如何处理 WS 输出中的无效字符?

    我正在使用 Spring CXF 和 Hibernate 构建一个 WebService 该服务对我具有只读访问权限的外部数据库执行搜索查询 问题是数据库中的某些条目在文本字段中具有奇怪的字符 0x2 并且它用于处理 序列化从 Hibern
  • C++ 从函数返回对象

    下面的代码显示了一个表示复数的类 我的兴趣是了解operator 功能 我认为Complex res应该分配在函数的框架上operator 将这个对象返回给调用者是否正确 当这个函数返回时 框架已经被弹出了 但是res调用者将继续使用 除非
  • 重命名列表项

    我有以下清单listaValores listaValores lt c for valores in 1 numRepeticion listaValores lt c listaValores readWorksheetFromFile
  • 相当于 mac os X 上的 strace -feopen

    这对于调试很有用 因此与编程相关 在linux上 我们可以使用命令 strace feopen python myfile py 找出加载了哪些 python 模块和共享对象 macOS X 上是否有等效的单行代码 我想你的意思是strac
  • CentOS 中 Apache 没有权限错误

    我已经在 centos 6 中安装了 apache 2 2 当 apache 文件夹位于默认位置时 一切正常 var www html 然后我在我的用户主文件夹中配置了一个虚拟主机 之后 apache 开始显示Forbidden You d
  • 在 WordPress 中获取随机帖子

    如何在 WordPress 中获得随机帖子 我想在页面上显示一个按钮 按下该按钮后 会转到博客中的随机帖子 我不想在页面上显示随机帖子 我只想要一个指向该帖子的链接 我尝试在 Google 和 stackoverflow 上搜索代码 但没有
  • 连接 gsub [重复]

    这个问题在这里已经有答案了 我当前正在运行以下代码来清除数据中的重音字符 df lt gsub A df df lt gsub E df df lt gsub I df df lt gsub O df df lt gsub U df df
  • 解组字符串化的 json

    我正在尝试使用嵌套 json 来解组 json 我正在使用这个结构 type atomRequest struct Stream string json stream Data map string interface json data
  • 为什么当触摸手势持续很短时间时,UITableViewCell 上的 UIButton 只会绘制得更暗

    快速按下按钮并且短时间按住按钮不会突出显示 不同于一个UIButton在一个共同的UIView 就像官方 Twitter 客户端中的头像一样出现了同样的问题 Instagram 客户端似乎解决了这个问题 所有按钮都工作正常 在这里找到同样的
  • NSData:在解包可选值时意外发现 nil

    这可能是基本的 swift 问题 但我是 swift 或 iOS 开发的新手 我收到错误fatal error unexpectedly found nil while unwrapping an Optional value 对于下面的函
  • 如何使用 Intel 内在函数检查 CPU 是否支持 AVX 扩展?

    我正在使用英特尔内在函数编写程序 我想用 mm permute pd内在的 仅在具有 AVX 的 CPU 上可用 对于没有 AVX 的 CPU 我可以使用 mm shuffle pd但根据规格 它比 mm permute pd Intel
  • 客户端可以取消 Web Api 请求吗?

    我的 Web api 控制器中有以下方法 长时间运行的方法支持取消令牌 即如果请求取消 它们将不会运行 public async Task