更新在IIS上运行的实时网站的最佳实践

Mar*_*tyn 9 asp.net deployment iis iis-7

目前,当我们有想要推广到我们的实时网站的更新时,我们运行.bat文件,将整个文件夹结构从我们的开发环境复制到实时服务器.这将使用新更新的新文件夹替换虚拟目录指向的文件夹.这是在服务器和IIS处于活动状态时完成的,显然是在用户访问网站时.

我们偶尔会遇到因更新后文件或文件夹立即"锁定"而导致的错误,通常唯一的选择是停止IIS或重新启动服务器.我们猜测这种"锁定"是由.bat文件试图在IIS使用时覆盖文件引起的.

有没有其他人经历过这个和/或你会推荐什么作为动态更新实时网站的最佳方式,停机时间最短(即几乎没有停机时间).

谢谢.

Jan*_*oom 5

购买第二个网络服务器,购买负载均衡器.标记1服务器脱机,升级,重新联机.将服务器2标记为脱机,升级,重新联机.

  • 每天对代码库进行大量更新?这不好.如果您只是在aspx页面本身中进行html或标记更改,则应该能够更新服务器而无需使其脱机.如果您正在更新代码隐藏或控制器代码,往往....... (3认同)
  • 感谢您的回复,我们已经有您描述的设置.但是,服务器运行许多Web应用程序(10+),我们的开发人员每天都会进行许多更新,因此我们希望尽可能简单快速地进行更新.因此,简单的.bat文件方法到目前为止运作良好的原因. (2认同)

her*_*iod 5

转发作为答案而不是评论,在那里有一个愚蠢的时刻!

如果您无法停机,那么最好的方法是运行另一个服务器副本,以便在您想要更新主服务器时将用户转移到该副本.然后,在更新后将用户转移回主服务器.

您可以使用位于另一台服务器上的State Server来确保在从一台服务器切换到另一台服务器时保持任何会话状态.

我们目前正在试验微软的Web Farm Framework,它似乎很好地做了这种事情.

我们的设置涉及前端服务器,主要和辅助Web服务器以及单独的状态服务器.WFF在两台计算机上保持Web应用程序的副本同步,并且状态服务器确保如果用户在请求之间切换服务器(或者他们当前的服务器脱机),他们不应该注意到更改.

要升级主服务器,请将其从负载平衡中取出,这会将所有请求转移到辅助服务器.进行升级,将其重新放入旋转,然后使用第二台服务器重复此过程.