当没有(维护)访问唯一可从 Internet 访问的服务器时,对于必须更新的 ASP.NET MVC 4 网站的最佳架构是什么?
我们有两台服务器:服务器 A 可以访问 Internet,但我们无法在需要时进行更新。服务器 B 不会有这个问题,但它位于防火墙后面,无法从 Internet 访问。
我想出了几个想法:
- 在服务器 B 上运行 Asp.NET 站点并为服务器 A 构建简单的代理并通过隧道传输流量。(如何?)(参见 WCF 路由)
- 不知何故,从服务器 B 动态加载几乎整个站点。如果应用程序的核心不能更改,只要每个子应用程序都可以,就可以了。也许构建一些维护页面,提供从服务器加载最新库和文件的操作?
- 构建外部更新程序软件。
服务器 A 也被其他公司使用,例如 IISRESET 是不可能的。如果需要,托管应用程序的应用程序池当然可以回收。
使用 WPF 我只需下载最新的二进制文件并在启动应用程序时动态加载它们,但使用 Asp.NET 和 IIS 会稍微复杂一些。