MattB从水里摔了下来。+1我将提供更多详细信息,但我不想接受他的观点。我会补充他的话。
我的设置与他描述的类似,并且效果很好。即使在单个服务器上,ARR也是解决之道。
但是,我要补充两点。
按照Matt的建议创建2个站点。称他们为yoursite.com01和yoursite.com02之类的名称。
创建2个URL重写规则。一种用于www.yourdomain.com,另一种用于staging.yourdomain.com。对于生产,请使用{HTTP_HOST},其值为(^ www.yourdomain.com $)|(yourIP)。(或您喜欢的任何绑定),对于暂存,请使用{HTTP_HOST},其值为(^ staging.yourdomain.com $)。将规则称为yoursite.com和staging.yoursite.com。
将Rule = yoursite.com绑定到site = yoursite.com01,然后将rule = staging.yoursite.com绑定到site = yoursite.com02。
在staging.yoursite.com上设置FTP。
现在,生产流量将流向Rule = staging.yoursite.com和Site = yoursite.com01。陷入相反。
您可以在任何时候进行部署,测试,预联动,让其他人进行测试等。在白天进行此操作并不重要。每次都部署到相同的FTP帐户。非常适合构建服务器。
然后,当您准备上线时,只需进行以下3个更改:-将FTP绑定从yoursite.com02移至yoursite.com01-更改URL重写规则yoursite.com以指向yoursite.com02-更改URL重写规则阶段。 yoursite.com指向yoursite.com01
现在,您可以实现零停机时间,即时切换以及即时回滚功能!
您唯一需要考虑的问题是进程外会话状态。确保状态服务器接受两个站点ID,以便您在交换期间不会丢失会话状态。
另请注意,这仅是Web而非数据库。
要编写脚本,请使用配置编辑器。进行所需的更改,然后单击“生成脚本”。它将为您提供C#,appcmd或AHAdmin代码。
我已经在网站前端放置了几个月来交换实例,但我再也没有回头。与传统部署相比,它使部署如此令人耳目一新。