asp.net-mvc – 捕获路由错误
发布时间:2020-12-16 03:34:34 所属栏目:asp.Net 来源:网络整理
导读:我正在构建RESTful API,我想控制所有可能的输出给我的消费者.我正在实现ExceptionFilterAttribute来过滤控制器中引发的所有异常.但是,这并不能让我控制在到达控制器代码之前我的应用程序中可能发生的错误 – 例如路由错误.默认行为发回标准的序列化HttpError
我正在构建RESTful API,我想控制所有可能的输出给我的消费者.我正在实现ExceptionFilterAttribute来过滤控制器中引发的所有异常.但是,这并不能让我控制在到达控制器代码之前我的应用程序中可能发生的错误 – 例如路由错误.默认行为发回标准的序列化HttpError,给出了太多内部信息,比如控制器类名等.我想避免这种情况.改变这种行为的最佳方法是什么?
解决方法
您可以添加MessageHandler来执行此操作.
MessageHandlers首先在管道中运行,允许您处理原始传入请求和原始传出响应. 例如: public class ErrorHandler : DelegatingHandler { protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,CancellationToken cancellationToken) { var response = await base.SendAsync(request,cancellationToken); if (!response.IsSuccessStatusCode) { Debug.WriteLine("something happened! - " + response.ReasonPhrase); } return response; } } 然后在GlobalConfiguration中注册 config.MessageHandlers.Add(new ErrorHandler()); 这基本上检查了传出响应,并检查状态代码是否为2xx.如果没有,你可以用它做点什么 – 记录,或者重置响应的内容以隐藏你想要隐藏的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC编辑集合最佳实践 –
- 深入理解C# 3.x的新特性(5):Object Initializ
- 成员资格 – 如何在ASP.NET中将用户与其各自的文
- asp.net-mvc – ASP.Net MVC中的实时视频聊天录制
- asp.net-mvc – 使用Web Deploy发布ASP.NET MVC2
- asp.net-web-api – 认证/授权MVC 5和Web API –
- 谈谈基于SQL Server 的Exception Handlingp[下篇
- asp.net-mvc – UTC时间的Hangfire CRON
- ASP.NET Webforms中的ViewState替代项
- .net – 如何使用viewmodel绑定选择列表?
热点阅读