我们有一个部署在RDS服务器上的Windows2008R2 RemoteAPP .NET 4.5应用程序,该程序在3个主机NLB集群中拥有约300个并发用户。
该应用程序正在积极开发中,RemoteAPP部署的程序集需要经常更新(即用新程序集替换原有程序集)。
目前我们的做法如下:
1. 在RemoteAPP服务器上更改要更改的文件名称,同时连接用户(如果文件已加载,操作系统将不允许覆盖文件), 2. 将新文件写入原文件位置, 3. 安装新程序集(未卸载旧程序集!), 4. 通过应用程序本身通知用户应用程序版本已更改,需要重新启动, 5. 逐步允许用户按照自己的节奏重启应用程序(同时重启应用程序会导致磁盘和CPU负载增加,损害服务器性能)。 对于集群中的所有主机都是这样。
然后,服务器偶尔会出现蓝屏崩溃,出现Microsoft-Windows-Kernel-Power事件ID 41关键错误 - 我高度怀疑我们的更新方法对此负有责任。
因此问题是:有什么推荐的方法可以更新RemoteAPP应用程序,并NGEN新程序集,而无需终止访问旧程序集的进程(即允许用户继续并在他们感觉需要时重新启动)。
谢谢。
该应用程序正在积极开发中,RemoteAPP部署的程序集需要经常更新(即用新程序集替换原有程序集)。
目前我们的做法如下:
1. 在RemoteAPP服务器上更改要更改的文件名称,同时连接用户(如果文件已加载,操作系统将不允许覆盖文件), 2. 将新文件写入原文件位置, 3. 安装新程序集(未卸载旧程序集!), 4. 通过应用程序本身通知用户应用程序版本已更改,需要重新启动, 5. 逐步允许用户按照自己的节奏重启应用程序(同时重启应用程序会导致磁盘和CPU负载增加,损害服务器性能)。 对于集群中的所有主机都是这样。
然后,服务器偶尔会出现蓝屏崩溃,出现Microsoft-Windows-Kernel-Power事件ID 41关键错误 - 我高度怀疑我们的更新方法对此负有责任。
因此问题是:有什么推荐的方法可以更新RemoteAPP应用程序,并NGEN新程序集,而无需终止访问旧程序集的进程(即允许用户继续并在他们感觉需要时重新启动)。
谢谢。