c# - 如何最好地在两个 ASP.NET Core 服务器应用程序之间进行通信?

标签 c# asp.net asp.net-core asp.net-core-mvc asp.net-core-webapi

<分区>

我有两个 ASP.NET Core Web 应用程序(在不同的物理服务器上),并且都使用 EF Core。虽然两者都是“服务器”,但其中一个也从另一个收集数据(即其中一个也是“客户端”)。

ASP.NET Core 不同,因为没有“MVC”和“WebAPI”,它结合了两者。我不确定要使用哪些新 API。

我应该如何将数据从一个传输到另一个?

我最初的想法是“客户端”应用程序具有经过身份验证和授权的 GET 操作,该操作会返回数据。但是怎么办?它可以直接返回一个 EF 实体,还是我负责序列化到 JSON 或从 JSON 序列化?它应该返回 IActionResult 还是其他什么?它应该是常规请求还是 AJAX 请求? OWIN 是否与此有关?

ASP.NET Core 现在有什么智能技术可用吗?我不需要解决方案,只需要一些正确方向的指示。

最佳答案

虽然框架可能有新的辅助方法/对象/等等。在这里或那里,关于客户端和服务器之间的 HTTP 通信并没有真正改变。实际上,从客户端的角度来看,无论后台使用何种技术,服务器都没有区别。

Can it directly return an EF entity

当然可以,就像过去的 Web API 一样。像这样简单的东西:

public Widget Get(int id)
{
    return _widgetRepository.Get(id);
}

(假设这里实现了某种存储库,但您明白了。)

对此的默认 HTTP 响应通常是一个 JSON 格式的响应主体和一个 200 OK 响应代码。您可以通过各种框架帮助程序对其进行更多控制,其中有一些不错的概述和介绍 here .

无论您如何从服务器返回任何给定结果,客户端仍然会像其他任何响应一样获得 HTTP 响应。代码、标题、内容等

关于c# - 如何最好地在两个 ASP.NET Core 服务器应用程序之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41450174/

相关文章:

c# - INSERT INTO 语句 ASP.Net C# 中的语法错误

c# - 希伯来语/犹太语日期转换

c# - 如何在没有任何闪烁的情况下将 pictureBox 移动到已绘制的面板上?

c# - 如何使用没有声明元素的 xml writer 创建 xml

asp.net - 丢失 <asp :Label> Text value from ViewState for dynamically added control

asp.net - 如何对跨项目共享的资源进行版本控制

asp.net - 写入事件日志时出现 System.Security.SecurityException

c# - Ubuntu 16.04 上的 System.Security.Cryptography.Csp

c# - 网络核心 : Swashbuckle Set operationId Automatically on to Controller Action Method

razor - Microsoft.AspNetCore.Mvc 中的 Toastr 通知