Owin SelfHost WebApi - 客户端在响应期间关闭连接会引发异常?

2023-12-19

我正在运行一个基于 Owin Selfhost 的 WebApi,其中我通过以下方式放入了 API 未处理的异常记录器

config.Services.Add(typeof(IExceptionLogger), _apiExceptionLogger);

异常记录器的相关部分:

    public override void Log(ExceptionLoggerContext context)
    {
        if (context == null || context.ExceptionContext == null) return;

        Logger.Error("Unhandled exception from Web API", context.ExceptionContext.Exception);
    }

它定期捕获和记录的情况是客户端请求数据集,然后在返回结果(JSON)时关闭连接 - 人们在 chrome 中发出请求,然后在所有结果返回之前点击 X 按钮:磷

为了完整起见,我在下面粘贴了堆栈跟踪,只想知道两件事:

  • 这是正常/预期的行为吗? AFAIK 是...我正在运行一个非常默认的 API 和管道
  • 有什么办法可以处理这个问题吗?本质上,在取消的情况下更优雅地停止请求处理(确实想到了遍布整个请求管道的取消令牌,但在这种情况下看起来它们并没有做太多事情,毕竟所有令牌仅支持合作取消)

我还没有对套接字级别发生的事件序列进行任何深入研究,到目前为止,这只是一个日志记录麻烦。

System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException ---> System.Net.HttpListenerException: The I/O operation has been aborted because of either a thread exit or an application request
   at System.Net.HttpResponseStream.EndWrite(IAsyncResult asyncResult)
   at Microsoft.Owin.Host.HttpListener.RequestProcessing.ExceptionFilterStream.EndWrite(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at Microsoft.Owin.Host.HttpListener.RequestProcessing.ExceptionFilterStream.EndWrite(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
   --- End of inner exception stack trace ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Owin.HttpMessageHandlerAdapter.<SendResponseContentAsync>d__20.MoveNext()    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Owin.HttpMessageHandlerAdapter.<SendResponseContentAsync>d__20.MoveNext()

我在 Raspberry Pi 上的 Owin 主机上遇到了类似的问题。这可能有帮助https://stackoverflow.com/a/30583109/1786034 https://stackoverflow.com/a/30583109/1786034

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

Owin SelfHost WebApi - 客户端在响应期间关闭连接会引发异常? 的相关文章

  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • LINQ To Entities 无法识别数组索引

    我的代码中有以下功能 public List
  • 如何以不同的方式设置标准 GWT 组件 (TabBar) 的样式?

    我正在使用 TabBar 并且想以不同的方式设置组件的样式 所以一次是这种风格 另一次是那种风格 我以为这会起作用 但事实并非如此 TabBar t new TabBar t addTab 1 t addTab 2 t addStyleNa
  • 将 stdint 与 swig 和 numpy.i 一起使用

    我正在开发一个模块来使用c inline在Python代码中基于swig 为此我想做numpy数组可访问于C 到目前为止我使用的 C 类型如下unsigned short但我想使用类似的类型uint16 t from stdint h保存我
  • Python 文档 (:obj:`str`) 与 (str)

    我一直在读这个Google 风格 Python 文档字符串示例 http sphinxcontrib napoleon readthedocs io en latest example google html了解 Python 文档的编写程
  • 创建查询以获取未完成呼叫的计数

    有表 waiter log 作为 call id queue num curr ast num curr proceed wait f27de4f 9010 2 1 f27de4f 9002 5 1 f27de4f 9003 1
  • WatchOS 3 中的本地通知

    我正在使用 WatchOS 3 beta 并尝试在手表上启动本地通知 该界面只是一个按钮 它调用下面代码中的 buttonPushed 方法 该应用程序运行良好 但我从未收到通知 应用程序结构是 Xcode 8 中 WatchKit 应用程
  • 如何调整mysql命令行的显示设置?

    mysql 命令行未正确显示结果 我的意思是表的某些列位于第一行 某些列位于第二行 输出也分为两行 如何调整这些设置才能正确显示结果 您可以使用 G命令 而不是 在 SQL 查询的末尾 Example SELECT FROM USER G
  • 使用NamedParameterJdbcTemplate将数据发送到DataBase

    package com techm template import java sql Types import java util Date import java util HashMap import java util Map imp
  • 如何计算 TCP 校验和

    我正在编写一个内核模块 它使用 Netfilter 挂钩来修改一些 TCP 标头信息 显然 在发送之前 我想重新计算校验和 我还在接收端编辑了标头 所以我也需要在那里重新计算它 在网上搜索 我发现有人说我可以简单地将其设置为0 它会为我计算
  • 排除迁移的属性[重复]

    这个问题在这里已经有答案了 I have 特性在我的模型上 我不想在中生成字段tables迁移后 是否可以排除特性实体框架核心迁移 我的模型上是否有模型的属性或某些 Fluent API 方法DbContext为了这 您应该能够指定 Not
  • WordPress:如何从自定义分类查询中排除子分类中的帖子?

    我的 WordPress 主题有一个名为 集合 的自定义分类法 自定义分类是分层的 因此存在子集合 我有一个名为 书籍 的集合和一个名为 小说 的子集合 有些帖子只在 书籍 中 有些帖子则在 小说 中 我希望 书籍 集合的页面仅显示主 书籍
  • C# 中的可滚动消息框

    我在VS2008 C 中使用Addin 我需要显示消息 错误消息和其他消息 我不知道消息的长度 因此我想使用 Scrollable MessageBox 我找到了 2007 年的这篇文章 作者 Mike Gold 2007 年 7 月 30
  • NSMutableArray arrayWithArray:与 initWithArray:

    这些都在我的应用程序中工作 没有任何明显的区别 1 theArray NSMutableArray alloc initWithArray NSKeyedUnarchiver unarchiveObjectWithData theData
  • 随机有理数生成

    有理数是可数的 例如 此代码在开区间 0 1 中查找第 k 个有理数 排序为 n1 d1 是在之前 n2 d2 if d1
  • 各个平台的保留文件名是什么?

    我不是在询问文件名的一般语法规则 我的意思是那些不知从哪里跳出来咬你的陷阱 例如 尝试在 Windows 上将文件命名为 COM From http www grouplogic com knowledge index cfm fuseac
  • iPhone 5 上的 Bootstrap 3 不是 XS

    我在制作 Bootstrap 3 网站时遇到了一个非常奇怪的错误 由于某种原因 它不适应较小的 iPhone 屏幕尺寸 导航栏没有折叠 并且 col xs 似乎被忽视 我仔细检查了 iPhone 上的屏幕宽度 320 像素 当我调整浏览器大
  • 如何在 Java GUI 中显示一行?

    我想在 Java swing 中的两个图像之间画一条线 我找到了不同的绘制线条的方法 但没有一种是我想要的方式 这让我想也许我只需要在我想要的地方插入一条线条的图像 无论如何 我想要类似的东西 O O O O 要显示在 O 是图像的位置 而
  • Javascript 登录系统检查 if ("UserPassword") == Undefined 不起作用

    所以基本上在一个 html 文件中 我有一个输入字段 其 id 为 UserPassword 在我的 js 文件中 我有一个函数 register 它会检查您是否已注册 如果没有 则检查这是否是您第一次登录 如果没有 则检查您输入的密码是否
  • Mongodb中的聚合查询返回特定字段

    文件样本 id ObjectId 53329dfgg43771e49538b4567 u id ObjectId 532a435gs4c771edb168c1bd7 n Salman khan e email protected cdn c
  • Owin SelfHost WebApi - 客户端在响应期间关闭连接会引发异常?

    我正在运行一个基于 Owin Selfhost 的 WebApi 其中我通过以下方式放入了 API 未处理的异常记录器 config Services Add typeof IExceptionLogger apiExceptionLogg