gpt4 book ai didi

c# - 在两台物理服务器上托管 ASP.NET MVC 项目

转载 作者:太空狗 更新时间:2023-10-29 17:49:15 24 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 项目,需要在两台不同的服务器上托管。我知道这看起来很奇怪,但这是我客户的要求。

具体来说,我会有2个负载均衡服务器

  • Web 服务器 - 公开(域将指向此服务器的公共(public) ip)
  • App Server - 与内部基础设施(Active Directory、数据库、安全等)通信

Simple diagram

我正在考虑创建另一层(ASP.NET Web API),以便网络服务器仅提供 HTML 页面,应用服务器将包含业务逻辑并为所有客户端公开端点(网络、手机)进行调用。 Web Server 将通过 RESTFUL 服务与 App Server 通信。

有没有更好的办法呢?任何解决方案将不胜感激。

提前致谢

最佳答案

这是一种相当正常的做事方式 - 让 Web 服务器专注于服务页面,让后端服务器处理应用程序业务逻辑的繁重工作。如果它大量用于大数据吞吐量,我会考虑使用独立的 Web、应用程序和数据库服务器使其成为三层。

Web API 也是两个服务器之间通信的不错选择,但如果您发现需要超越基本 REST 操作,则可能值得考虑将 WCF 作为替代方案。不过,让它运行需要更大的开销,而且绝对不适合胆小的人!

编辑

因此,您需要做的是将所有当前业务逻辑从现有 Controller 中移出,并移至位于第二台服务器上的一组相应的 Web API Controller 中。如果您小心的话,您应该能够将 MVC Controller 方法直接复制到您的 Web API Controller 中并添加适当的路由属性。您的数据库(如果有的话)也需要位于第二台服务器上。

完成后,所有 MVC Controller 将调用第二台服务器上运行的 Web API。 MVC Controller 不应该对你的数据进行任何类型的处理,除了基本的调整以使其看起来不错(无论如何,保持你的 Controller 干净是一个很好的做法)。

这应该让您对需要做什么有一个基本的了解。如果您需要关于任何步骤的任何更具体的信息,请大声喊叫,我会看看是否可以详细说明。

关于c# - 在两台物理服务器上托管 ASP.NET MVC 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34152348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com