asp.net webapi bug : System.OperationCanceledException 异常处理
asp.net webapi的过滤器 ExceptionFilterAttribute 捕获一个异常消息如下:
检测到站点发生错误 "已取消该操作。"
错误跟踪: 在 System.Threading.CancellationToken.ThrowIfCancellationRequested() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() --- 引发异常的上一位置中堆栈跟踪的末尾 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()
官方的解答
关于异常的疑难解答:System.OperationCanceledException
项目
- 2011/08/12
如果在 UICancelOption 设置为 ThrowException 的情况下执行某一操作,然后取消了该操作,则将引发 OperationCanceledException。
相关提示
如果您不希望引发此异常,请将 OperationCanceledException 设置为 DoNothing。
UICancelOption 的默认值为 ThrowException。如果您不希望当用户取消操作时引发此异常,请将枚举值设置为 DoNothing。
https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/ms164920(v=vs.100)
解决办法
public class CancelledTaskBugWorkaroundMessageHandler : DelegatingHandler{protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken){HttpResponseMessage response = await base.SendAsync(request, cancellationToken);// Try to suppress response content when the cancellation token has fired; ASP.NET will log to the Application event log if there's content in this case.if (cancellationToken.IsCancellationRequested){return new HttpResponseMessage(HttpStatusCode.InternalServerError);}return response;}}
config.MessageHandlers.Add(new CancelledTaskBugWorkaroundMessageHandler());
asp.net webapi bug : System.OperationCanceledException 异常处理相关推荐
- 发现WinSRV2003SP1并没有包含ASP+Access的BUG更新
看了Windows Server 2003 SP1的LIST后,发现解决Win2003上运行ASP+Access的BUG补丁没有包含在里面.很郁闷,真的很郁闷!苦苦等待的关键性更新却没有包含,看来微软 ...
- asp.net webapi 自托管插件式服务(转)
webapi问世已久,稀里糊涂的人哪它都当mvc来使,毕竟已mvc使用级别的经验就可以应对webapi. webapi和mvc在asp.net5时代合体了,这告诉我们,其实 它俩还是有区别的,要不现在 ...
- 【转】OData – the best way to REST–实例讲解ASP.NET WebAPI OData (V4) Service Client
一.概念介绍 1.1,什么是OData? 还是看OData官网的简单说明: An open protocol to allow the creation and consumption of quer ...
- 消费和部署ASP.NET WebApi服务–陷阱
我相信您已经开始使用WebApi.如果不是这样,那么当您开始时,这篇文章仍然可以为您提供帮助. 这篇文章重点介绍我在使用ASP.NET WebApi开发时遇到的一些问题以及解决这些问题的解决方案. 陷 ...
- Asp.net webApi 通过WebSocket推送消息给客户端,搭建一个即是服务端又是客户端的服务
Asp.net webApi 通过WebSocket推送消息给客户端,搭建一个即是服务端又是客户端的服务_IT_ziliang的博客-CSDN博客 WebSocket是一种在单个TCP连接上进行全双工 ...
- 【开源】分享一个前后端分离方案-前端angularjs+requirejs+dhtmlx 后端asp.net webapi
一.前言 半年前左右折腾了一个前后端分离的架子,这几天才想起来翻出来分享给大家.关于前后端分离这个话题大家也谈了很久了,希望我这个实践能对大家有点点帮助,演示和源码都贴在后面. 二.技术架构 这两年a ...
- ASP.NET WebApi技术从入门到实战演练
一.课程介绍 曾经有一位不知名的讲师说过这么一句名言: 一门RPC技术不会,那么千万万门RPC技术将都不会!在今天移动互联网的时代,作为攻城师的我们,谁不想着只写一套API就可以让我们的Web, An ...
- ASP.NET WebApi OWIN 实现 OAuth 2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...
- ASP.NET WebApi 基于分布式Session方式实现Token签名认证
一.课程介绍 明人不说暗话,跟着阿笨一起学玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NETWebSer ...
最新文章
- Spring基于注解的AOP配置
- 微服务架构下,静态数据通用缓存机制!
- 惠普前总裁孙振耀指点职业规划
- 使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
- mysql中数据定义和数据控制语言_MySQL 数据定义语言(DDL)
- ZOJ3805Machine(二叉树左右子树变换)
- 国内最大最全的交换技术专区上线
- labview报表生成工具包_后台开发java 常见工具包 netty、mq 、分布式锁等,干货
- putty和WinSCP后门检查及清理方式
- 编译器、Make和CMake之间的关系
- 19_debug断点调试
- 常用积分类型(积分公式)
- nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
- 神经网络模型用于数学建模
- 离散数学 传递闭包 Warshall算法
- 29 | 无锁的原子操作:Redis如何应对并发访问?
- 买菜App综合服务水平排行:盒马、多点、每日优鲜排前三
- 编译ros21讲中的服务端Server时报错
- 解决在word中插入Mathtype公式后行距变大的问题(简单有效)
- 如何在Django中优雅的使用pyecharts设计可视化BI系统(多图表)