【发布时间】:2017-12-15 12:26:49
【问题描述】:
我们的团队是 ASP.Net Core 2.0 MVC 开发的新手。我们拥有完全异步的数据库 CRUD 应用程序,控制器和视图都仅通过 MVC6 创建,即没有 WebApi 或任何客户端平台,如 Angular。所有层都是通过MVC6开发的。
现在的问题是在 ASP.Net Core 2.0 MVC 项目中实现异常处理的最佳方法是什么?我们应该为开发和生产环境使用单独的代码吗?我们需要使用中间件吗?或动作过滤器(就像我们在 MVC 5 中使用的那样)是否足够好?
我需要它用于核心 2.0,而不是 1.1。如果您知道任何显示正确代码以在 Core 2.0 MVC 应用程序中实现异常处理中间件的链接,请发送。
【问题讨论】:
-
首先,没有MVC6这种东西,它只是ASP.Net MVC Core。其次,这个问题太宽泛了,基于意见并且需要外部资源,所有的原因都使它跑题了。
-
选项是一样的——很多。动作过滤器不是 MVC 6 中的最佳方式,它们是一种 处理以某种方式逃脱动作的异常的方式。有些错误可以由本地异常处理块处理,有些则不能。如果您使用数据库事务,则可以在发生死锁时重试操作。如果您使用乐观并发,您可能必须首先检查修改后的值,并在代码无法解析该做什么时通知用户
-
“最佳”和“足够好”都是非常主观的术语,取决于您的具体情况,这里没有详细介绍。通常方法的组合适用于涵盖所有可能性。不过我要说的一件事:您问“我们应该为开发和生产环境使用单独的代码吗?”。 IMO 绝对不会,因为这会破坏您的部署管道。不同的config,是的。用于处理某些事情的不同松散耦合的外部组件,可能是的。但是在应用程序中使用不同的代码库并不是一个好主意。
标签: asp.net-mvc model-view-controller asp.net-core