asp.net - 更新在IIS上运行的实时网站的最佳实践

标签 asp.net iis deployment iis-7

当前,当我们有要发布到实时网站的更新时,我们将运行.bat文件,该文件将整个文件夹结构从开发环境复制到实时服务器。这会将虚拟目录指向的文件夹替换为新的更新的新目录。这是在服务器和IIS正常运行时完成的,并且显然是在用户访问网站时完成的。

我们有时会收到由文件或文件夹在更新后立即被“锁定”引起的错误,通常唯一的选择是停止IIS或重新启动服务器。我们猜想这种“锁定”是由.bat文件试图在IIS使用中覆盖文件时引起的。

是否有其他人经历过这种情况和/或您会建议您以什么作为最佳的方式来动态更新实时网站,而停机时间最少(即几乎没有停机时间)?

谢谢。

最佳答案

转贴为答案而不是评论,那儿真是个愚蠢的时刻!

如果您没有停机时间,那么最好的办法就是运行另一台服务器副本,当您要更新主服务器时,可以将用户转移到该服务器上。然后,您可以在更新后将用户转移回主要用户。

您可以使用位于另一台服务器上的状态服务器来确保当它们从一个切换到另一个时,保持任何 session 状态。

我们目前正在尝试使用Microsoft的Web Farm Framework,该服务器似乎可以很好地完成这种事情。

我们的设置包括前端服务器,主要和辅助Web服务器以及单独的状态服务器。 WFF使Web应用程序的副本在计算机和状态服务器上保持同步,从而确保了如果用户在请求之间切换服务器(或当前服务器脱机),则他们不会注意到更改。

要升级主服务器,请使其脱离负载平衡,这会将其所有请求转移到辅助服务器。进行升级,将其放回原位,然后在第二台服务器上重复该过程。

关于asp.net - 更新在IIS上运行的实时网站的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071228/

相关文章:

javascript - .net 按钮事件未通过 ajax 工具包 ModalPopupExtender targetcontrolid 属性触发

sql-server - 带有记录数的 mvc 发布列表不起作用

android - 授权错误

java - URISyntaxException 在 Weblogic 中部署 WAR 文件时出现非法字符

deployment - Weblogic应用程序上下文根是war文件名而不是weblogic.xml中指定的名称

c# - 使用 Azure 的 '/' 应用程序中的服务器错误

c# - 允许全局地址列表 (GAL) 集成的 ASP.NET 控件

visual-studio - WebDeploy - 只是无法让它工作

html - CSS 导航列表重叠文本

windows - inetinfo.exe 始终出现在任务管理器中