2010-04-28 174 views
3

可能重复:
How to deploy an ASP.NET Application with zero downtime的ASP.Net应用程序安全部署

Duplicate Question

大家好,

我有我想要一个asp.net应用安全部署(尽可能缩短停机时间)。我喜欢做类似blue green deployment的事情,但不需要第二个Web服务器。

所以,我知道我可以使用负载平衡等,但我需要一个快速和便宜的方法。我正在考虑做类似的事情:

  • 在IIS中设置另一个网站(原件的副本),目前我使用主机标头来指引网站之间的流量)。
  • 我可以在本地查看新网站,直到网站完全在线(由于NHibernate启动以及需要一段时间的各种其他高强度任务)。
  • 一旦站点2完全启动,我会改变主机标题,给我一个更小的停机时间。

所以我的问题是。有没有人做过这样的事情?在更改主机头时,IIS会重新启动我的应用程序池或应用程序(使之无用)?任何其他选项?

感谢您的帮助。

圭多

+0

的确是这样,因此最后的职位,并在这个职位“复制问题”的顶部的编辑链接。如果你可以关闭Mauricio(如果你有权力),那么这将非常棒 – gatapia 2010-04-29 22:11:36

回答

2

如果你摸的web.config,您的应用程序池将回收。即使这样,当你重定向到新站点时,它也处于不同的路径中,因此会创建一个新的会话对象(如果使用的是会话)。怎么样的cookie?你会使用根路径来设置它吗?否则,Cookie将不会在这两个网站之间共享。

简单的解决方案是实际取下网站(app_offline.htm),复制文件并可能执行热启动。

http://learn.iis.net/page.aspx/688/using-the-iis-application-warm-up-module/

你有没有考虑ARR?

http://www.iis.net/download/applicationrequestrouting

+0

Hi Raj, 对你的帖子的一些评论:我没有碰到web.config。我不介意在交换机上丢失会话cookie数据(我的应用程序 实际上不使用会话)。第一个链接 - 我在IIS6 :(。第二个链接 - 这只是负载平衡不是吗? – gatapia 2010-04-28 03:58:21

+0

是的第二个是负载平衡(你可能可以在一台服务器上完成)*新行* IIS热身脚本从来没有使用它)http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx *新行*更改主机头不应该导致应用程序池回收。做一些事情,如触摸web.config或更改bin目录中的文件将*新行*如果您的网站是在如此沉重的负载下,不是应该做负载平衡吗?;-) – 2010-04-28 04:08:51

+0

'你不应该做负载平衡' - 是的,这将是合乎逻辑:)让我们只是说我不能卖出这个想法。 我发现在这个线程我目前正在调查建议: http://stackoverflow.com/questions/148084/how-to-deploy-an-asp-net-application-with-zero-downtime 如果这些工作我将把这个问题作为重复来解决。 – gatapia 2010-04-28 04:55:42