繁体   English   中英

将ASP.NET网站版本投入生产(IIS)的最佳方法

[英]Best way to put a ASP.NET website version into production (IIS)

使网站投入生产以最大程度地减少因初始编译和初始化而导致的停机时间的最佳方法是什么?

我不喜欢IIS 8应用程序初始化模块,因为(据我所知)它需要更改计算机特定的配置(applicationHost.config),而我却无法(也讨厌)这样做。

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

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

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

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

然后,您静默禁用另一个,在集群中升级,预热并启用。 停机时间为零。 同样,在群集中至少有两个节点是支持故障转移方案的基本方法,并且应该被认为是可靠网站的必备条件。

如果您不想使用NLB或外部负载平衡服务(这是最佳做法!),则可能可以避免使用ARR +重写规则和多个站点。 我不建议这有点过分

例如,假设您有1台IIS服务器和一个名为guestbook的应用程序,该应用程序位于guestbook.com上,则prod中的当前版本为5,并且您准备部署6

在服务器上创建了3个站点。 只有80和443应该向世界开放

  1. ARR_SITE使用guestbook.com绑定在80/443上侦听-这是您将重写规则挂起的地方
  2. 留言簿V5在端口8080上监听localhost / 127.0.0.1的绑定
  3. 留言簿V6在端口1010上监听localhost / 127.0.0.1的绑定

在ARR_SITE上创建一个URL_Rewrite规则,该规则会将进入guestbook.com:80/的所有内容重写为127.0.0.1:8080(Guestbook V5)

将访客留言簿V6部署为新站点端口1010,并将其绑定为localhost / 127.0.0.1。

从可以访问http://127.0.0.1:1010的服务器访问新站点一次。 这将初始化您的站点。 此时,现实世界无法访问它,因为ARR正在将所有内容重写为V5

现在更新您的重写规则,使其指向127.0.0.1:1010(Guestbook V6)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM