【问题标题】:Separate HTML and code behind on different servers [closed]在不同的服务器上分离 HTML 和代码 [关闭]
【发布时间】:2014-12-16 15:33:58
【问题描述】:

我正在构建一个 web 表单应用程序,并且想知道是否可以将“web”(HTML/aspx)层和“app”(C#/aspx.cs)层拆分到不同的服务器上?

我已确保所有 DB 调用都是通过后面的代码 (aspx.cs) 进行的,并且网络是严格的 HTML(因为我希望用户访问网络,这将访问将访问 DB 的应用程序)。

有可能吗?如果是这样,它是如何完成的,我的意思是我假设我会将 C# aspx.cs 部署到不同的 IIS 服务器,但我如何将 Web 服务器/文件指向它?

谢谢。

【问题讨论】:

  • ?!如果页面是 "strictly HTML" 那么你没有任何 aspx.cs 文件给他们......如果他们不是那么没有,你不能分割任何东西(顺便说一句 .cs 在那里仅在开发期间,而不是在生产中)跨服务器(除非您正在谈论负载平衡,在这种情况下,它们在许多服务器中重复并且请求被正确重定向)。当然,您可以将纯 HTML 页面存储在另一台服务器中,并且可以链接到它们(或将它们下载到您的 aspx 页面中……但我想知道为什么)。
  • 您通常根本不部署 .cs 文件,您只部署编译后的 DLL。
  • 正如我从您的问题中了解到的,您想构建一个带有中间层的瘦客户端,它将在不同的服务器上处理您的数据库,如果是这样,您可以在一台服务器和您的网络上构建一个 Web 服务应用程序将使用 Web 服务从数据库中检索数据。

标签: c# html asp.net web


【解决方案1】:

如果我可以将“web”(HTML/aspx)层和“app”(C#/aspx.cs)层拆分到不同的服务器上?

是的,但不是你想的那样。

您所描述的是构建一个多层系统,其中不同的逻辑层(应用程序逻辑和业务逻辑)位于不同的物理机器上。为此,首先您需要将应用程序逻辑与业务逻辑分开。

意味着将.aspx 文件放在一个位置,将代码隐藏(在本例中为.dlls)放在另一个位置。 应用层业务逻辑层都有代码。

这意味着创建两个应用程序。一个是您的前端 Web 应用程序,它包括所有用户界面和用于驱动该界面的任何代码。另一个是一个服务应用程序(可能是一个 Web 服务,至少对于初学者来说),技术上有它自己的接口,该接口只是服务操作,而不是基于 HTML 的 UI。

前端应用程序基本上会处理用户请求,与业务应用程序交互(理想情况下,每个前端请求一个后端请求,如果用例设置正确的话),然后用回应。这种方法的好处包括:

  • 其他应用程序可以共享相同的后端业务逻辑服务。
  • 可以在后端服务之后保护数据库访问,这可以比 Web 服务器具有更严格的主机安全性。
  • UI 和后端服务可以单独扩展。
  • UI 可以单独管理,轻松更改/替换,不会影响业务逻辑。

【讨论】:

  • 是的 - 你几乎读懂了我的想法 :)。这很有道理。
【解决方案2】:

是的,你可以。一台服务器运行 IIS(或其他 Web 服务器)并提供 HTML/CSS/JS/Image 文件,而另一台服务器运行一组 Web 服务(例如使用 WCF)可以包含您编写的大量后端代码C#(或您选择的语言)。

可能是也可能不是最好的方法,并且会根据您提供的解决方案而有所不同,但从技术上讲它可以正常工作。

【讨论】:

  • 非常感谢,这回答了我的问题 - 虽然我需要更多代表,但不能投票给你。
猜你喜欢
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2019-04-13
  • 2014-03-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多