如果其他用户在 Windows Server 2012/R2 或 Windows Server 2008/R2 中注销远程桌面会话,应用程序崩溃或无响应
本文有助于修复以下问题:当其他用户注销远程桌面会话时,应用程序崩溃或无响应。
适用于: Windows Server 2012 R2
原始 KB 编号: 2536487
症状
从映射驱动器运行应用程序时,当另一个用户注销时,应用程序会因用户 (或多个用户) 而无响应或崩溃。 Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 Service Pack 1 (SP1) 和 Windows Server 2008 中会出现此问题。 例如,在以下方案中可能会出现此问题:
一个服务器是文件服务器,另一个服务器是远程会话主机服务器 (终端服务器) 。
将映射文件服务器上的文件夹,供连接到 RDS 服务器的远程用户使用。
映射共享上的应用程序由多个用户启动。
一个用户注销。 这会导致应用程序的其他用户遇到应用程序崩溃或无响应。 根据 OS 版本,当应用程序的第一个或最后一个用户注销时,会出现此问题,如下所示:
- 在 Windows Server 2012 R2、Windows Server 2012 和 Windows Server 2008 中,当第一个登录的用户注销时,会出现此问题。
- 在 Windows Server 2008 R2 SP1 中,当登录的最后一个用户注销时,会出现此问题。
注意
在 Windows Server 2008 R2 SP1 中,安装修补程序2559767后,此行为将更改为与 Windows Server 2012 R2、Windows Server 2012 和 Windows Server 2008 相同的行为。
原因
出现此问题的原因是重定向程序处理有关二进制文件控制块 (FCB) 的方式。
在 Windows Server 2012 R2、Windows Server 2012 和 Windows Server 2008 中,FCB 归打开文件的第一个用户所有,此 FCB 由后续用户使用。 当第一个用户注销时,FCB 将孤立。 这会导致应用程序崩溃或在后续使用时无响应。
在 Windows Server 2008 R2 中,FCB 由打开该文件的最后一个用户拥有,而以前的用户在最后一个用户注销时遇到此问题。
从技术上讲,FCB 不归任何特定用户所有。 它只是表示文件的共享结构。 当打开文件的第一个句柄时,将创建 FCB,并在关闭文件的最后一个句柄时销毁它。 因此,它不绑定到用户。
孤立实体是属于注销用户的文件对象。 如果该文件对象备份文件系统缓存或映射部分,则会遇到这些 I/O 错误。
解决方案
若要解决此问题,请升级到 Windows Server 2016。 此问题在此版本的 Windows Server 中已修复。
解决方法
若要解决此问题,请使用以下某种方法:
- 不要从映射的文件夹运行共享应用程序。 而是在终端服务器上本地安装共享应用程序。
- 如果需要远程二进制共享,请使用 WebDAV 共享而不是映射文件夹。
- 使用 交换从网络 链接器运行设置编译应用程序:
- 如果应用程序是托管应用,请使用 卷影复制功能。
注意
建议不要远程运行二进制文件。 在这种情况下,建议使用第一种解决方法。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈