.net core 和 Mvc api 行为之间的区别

Posted

技术标签:

【中文标题】.net core 和 Mvc api 行为之间的区别【英文标题】:Difference between .net core and Mvc api behaviour 【发布时间】:2022-01-07 19:10:32 【问题描述】:

.net core mvc api默认是异步的,.net mvc默认是同步的

【问题讨论】:

【参考方案1】:

.Net 和 .Net Core 控制器操作可以是同步的或异步的。该框架负责处理等待控制器操作背后的细节。

要使您的控制器操作异步,请将返回类型设置为 Task、Task 类型。

框架将等待结果,您也可以将 CancellationToken 添加到操作的参数中,框架会在客户端断开连接时为您添加,这样您就可以有效地取消任何长时间运行的任务。

但请注意,如果您在 IIS 中托管,为避免应用程序池锁定,如果您打算在较低层使用异步代码,则应使用异步操作。使用 .Wait 或 .GetResult 将导致应用程序池线程查看并且您的应用程序池将崩溃

【讨论】:

以上是关于.net core 和 Mvc api 行为之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

小5聊.net core 3.1 配置MVC路由和API

用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API

asp.net 5 MVC6 中标签助手和路由属性之间的奇怪行为

Mvc .net Core 通用 ajax跨域调api

.net Core web api 2(不是 mvc)的 HttpResponseException/IHttpAction 响应的等效项

如何在 ASP.NET Core MVC 中请求和显示实时 Web api 数据?