我们在 RDS 服务器上有一个 Windows2008R2 RemoteAPP .NET 4.5 应用程序 NGEN-ed,大约。3 主机 NLB 群集的 300 个并发用户。
该应用程序正在积极开发中,需要经常更新(即替换为新的)RemoteAPP 部署的程序集。
我们目前的做法如下:
- 重命名要在 RemoteAPP 服务器上更改的文件,用户连接到它(如果文件被加载,操作系统将不允许文件被覆盖),
- 写新文件而不是旧文件,
- NGEN 安装新程序集(无需先卸载旧程序集!),
- 通知用户(通过应用程序本身)应用程序版本已更改,需要重新启动,
- 逐渐允许用户按照自己的节奏重新启动应用程序(同时重新启动应用程序会导致磁盘和 CPU 负载增加,从而损害服务器性能)。对于集群中的所有主机也是如此。
在此之后,服务器偶尔会出现蓝屏崩溃并出现 Microsoft-Windows-Kernel-Power EventID 41 严重错误 - 我强烈谴责我们的更新实践对此负责。
因此,问题是:在不必终止访问旧程序集的进程的情况下更新 RemoteAPP 应用程序和 NGEN 新程序集的推荐方法是什么(即允许用户在他们喜欢时继续并重新启动)。
谢谢你。