同一解决方案中两个 ASP.NET Core 项目之间的通信
Posted
技术标签:
【中文标题】同一解决方案中两个 ASP.NET Core 项目之间的通信【英文标题】:Communication between two ASP.NET Core projects in the same solution 【发布时间】:2019-12-03 10:24:45 【问题描述】:我在同一个解决方案中有两个 ASP.Net 核心项目。这两者都将部署在不同端口的同一台服务器上(因为它们服务于不同的应用程序)。这两个 API 项目相互通信的最佳方式是什么?例如,如果在其中一个项目上调用 API 并且想要通知另一个项目,那么最好(快速且安全)的选项是什么?
这两个项目是否应该公开专门用于相互通信的内部 API? (在这种情况下,这些内部 API 如何保持内部和安全) 使用消息代理? 其他一些选项【问题讨论】:
如果它们在同一个解决方案中,您不能直接添加引用和访问方法吗? 否则只能使用带有api key和https的外部端口 尝试通过提供更多关于此处 fast 和 secure 含义的上下文来改进您的问题。否则问题就太宽泛了。 @WiktorZychla 我担心如果我只为内部通信创建 API,它可能会暴露给公众(或者更糟糕的是通过 HTTP 暴露给公众)。至于速度,我只是担心可能有更有效的方法来做到这一点,这些方法同样或不那么复杂。我没有特别的绩效目标。 @JimmyShoe 已经尝试了添加引用的方法,对我不起作用。有什么指点吗? 【参考方案1】:我通常使用两种沟通方式。
-
HTTP 同步,当我需要其他服务的即时答复时。
对于异步,主要是消息代理。发送消息并由其他服务处理。还有更多异步解决方案取决于您的需求。
巴拉兹
【讨论】:
以上是关于同一解决方案中两个 ASP.NET Core 项目之间的通信的主要内容,如果未能解决你的问题,请参考以下文章
如何按照存储库模式在 Asp.Net Core 5.0 项目上实现 .Net Core Identity?
c#一个解决方案里包含.netcore3.1和asp.net两个项目,能正常发布iis吗?
ASP.NET Core 2.0 为同一端点结合了 Cookie 和承载授权