0

你怎么能从一个中心位置更新 asp.net 应用程序。我想将最终更新发布到一个中心位置,并让所有站点从该中心位置下载最新更新。

就像让您的 wordpress 网站获得最新版本的 word press ur yahoo 要求用户迁移到最新版本一样。

4

3 回答 3

1

您可以使用您购买的工具,或尝试编写自己的脚本。为自己编写它们并不难。

从我知道的Octopus Deploy或Redgate Deployment Manager工具中(RedGate 购买了 Octopus 的资源,现在作为自己的项目出售,并带有一些修改/附加功能)。使用这些工具,您可以在目标服务器上安装他们的代理,以便能够将新版本的网站部署到这些服务器。Octopus 在推式和拉式两种模式下均可使用。我不知道部署管理器。

在我的工作中,我使用配置为Jenkins作业的自写脚本发布。一键安装新版本。这是一个“推送”更新。

请记住,为了在用户不注意的情况下更新网站(没有技术中断),您至少需要两台服务器和负载均衡器以及一个共享状态服务。在部署之前,您需要重新配置负载均衡器,以便它将所有请求路由到一台服务器。然后你更新那个服务器。现在重新配置负载均衡器,以便将所有请求路由到更新的服务器,并更新另一个。更新所有服务器后,再次重新配置负载均衡器,以便将请求路由到所有服务器。

于 2013-07-25T09:08:01.657 回答
0

最近我做了同样的事情。但在我的方法中,应用程序不要求用户下载最新版本。它直接下载最新版本。我做了什么 :

  1. 在您的应用程序中创建一个 Web 服务。它将接收数据并直接更新数据库或项目的任何其他部分。

2.然后您必须创建一个将安装在您的服务器上的 Windows 应用程序。它在客户端机器上使用您的应用程序的 Web 服务。现在只需在你的 win 应用程序中编写一个调度程序,它将每晚或任何你想要的开始。每当它启动时,它都会调用所有服务并向它们发送更新的数据。您的服务将收到此信息并更新应用程序。

告诉我,有没有帮助

于 2013-07-25T06:10:34.627 回答
0

主要有两种方法:

第一个是“推送”更新,这样当您上传新版本时,它会联系每个网站(例如向触发 URI 发送请求),从而导致每个网站下载并安装您提供的更新。这将要求您的中央更新站点维护一个站点数据库以通知更新。

第二个是让网站的代码包含一个检查(在一个单独的线程上,因此它不会阻止任何页面请求)n自上次检查更新以来还没有几天,如果是这样,请与您的中心检查服务器进行更新,如果适用,下载并安装它。这种方法意味着您的中央服务器不需要知道消费站点,反之亦然。

于 2013-07-25T05:46:53.173 回答