2013-10-02 93 views
0

将网站投入生产以最大限度地减少初始编译和初始化造成的停机时间的最佳方法是什么?将ASP.NET网站版本投入生产的最佳方式(IIS)

我不喜欢IIS 8应用程序初始化模块,因为(据我了解)它需要更改机器特定的配置(applicationHost.config),我不能(也讨厌任何)做。

.net网站有多大规模投入生产?是否有一个理想的解决方案,在旧版本完全启动并准备替换旧版本之前,旧版本未被禁用。

回答

4

您需要两个簇,可以使用ARR或NLB进行设置。

拥有群集的两个节点,您只需禁用一个,以便所有流量都流向另一个流量。

然后,您更新禁用服务器上的网站并对其进行预热。然后您只需切换群集中的活动节点,以便所有新请求都能立即启动到更新的服务器。

然后您默默禁用另一个,升级,预热并在群集中启用。停机时间为零。此外,集群中至少有两个节点是支持故障切换场景的基本方式,应该被视为可靠网站的必备工具。

+0

你看到这个现实世界中无法访问作为一个好的解决方案在我的情况下,我只能使用LB;有一个LB引入单点故障,所以你至少需要2个LB(使用DNS循环或故障转移检查,丢失50%的流量比我猜想的100%更可接受)...我认为这是解决实际上不应该存在于服务器级别的问题的解决方案。我认为这是一个影响所有ASP.NET网站的杀手问题,我不明白为什么微软的人从未真正解决过这个问题。 – Vincent

+0

他们解决。看看WFF和ARR必须提供什么。这是我们现在使用的完整解决方案。 –

+0

WFF是否可以轻松地将我的软件包发布到服务器场中的所有服务器上,而无需停机并且在某些负载平衡中不“禁用”服务器?如果不是,与xcopy相比有什么优势? (这不具有讽刺意味,我喜欢学习新的有用的东西!) – Vincent

1

如果您不想使用NLB或外部负载平衡服务(这是最佳实践!)您可能会使用ARR +重写规则和多个站点。我不建议这样它是一种哈克

例如,假设你有1个IIS服务器和应用程序调用该留言住在guestbook.com当前版本正式版是5,你准备好部署6

在服务器上有3个网站创建。只有80和443应该是开放的世界

  1. ARR_SITE监听80/443与guestbook.com的结合 - 这 是在那里你会挂在你的重写规则客
  2. 留言V5监听在端口8080上与本地主机的结合/ 127.0.0.1
  3. 留言V6端口上侦听1010与在ARR_SITE创建URL_Rewrite规则将改写一切进入本地主机/ 127.0.0.1

的结合guestbook.com:80/ to 127.0.0.1:8080(Guestbook V5)

将留言簿V6部署为具有localhost/127.0.0.1绑定的新站点端口1010。

从可以访问它的服务器访问新网站http://127.0.0.1:1010。这将初始化您的网站。在这一点上,因为ARR重新写一切V5

现在更新重新写入规则指向127.0.0.1:1010(Guestbook V6)

相关问题