gRPC与Asp.net Core Mvc一起运行

时间:2016-11-28 06:43:02

标签: c# asp.net-core console-application asp.net-core-mvc grpc

问题背景

我目前有两个项目链接到同一个数据库。第一个应用程序是使用实体框架的Asp.Net Core MVC项目。它托管了一堆仪表板和REST API。

第二个项目是Asp.Net核心控制台应用程序,它在一个单独的端口上托管gRPC服务器。

第三个项目是一个中间Schema项目,它将模型作为上述两个项目的类库提供。

问题

在与MVC项目相同的项目中托管gRPC项目是否可能/更好?如果是这样,那么在kestrel / grpc的线程池中是否会有冲突?最后,这会删除使用IISIntergration在IIS服务器上托管应用程序的能力吗?

TL; DR 可以/我应该使用相同的项目在aspnet核心上托管gRPC和MVC服务器以及会产生什么影响?

2 个答案:

答案 0 :(得分:4)

关于线程池冲突的部分问题:

  

如果是这样,那么kestrel / grpc的线程池中是否会出现冲突?

GRPC生成自己的线程池来完成工作并完成与grpc调用相关的任务。只要在任何地方使用async / await并且可能会卸载长时间运行的CPU工作,那么就不应该出现任何问题。

答案 1 :(得分:0)

令人惊讶的是,自版本3:https://docs.microsoft.com/en-us/aspnet/core/grpc/aspnetcore?view=aspnetcore-3.1&tabs=visual-studio

开始,ASP.NET Core现在正式本地支持GRPC。