同一解决方案中两个 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的外部端口 尝试通过提供更多关于此处 fastsecure 含义的上下文来改进您的问题。否则问题就太宽泛了。 @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 和承载授权

如何在 ASP.NET Core MVC 的同一视图中添加/创建多个一对多关系

显示列表并在列表中添加新项目 asp.net core

Asp.net core 3.1 保护 API 和 Web 应用程序