Azure VM 在未通过远程桌面连接时暂停正在运行的软件

Posted

技术标签:

【中文标题】Azure VM 在未通过远程桌面连接时暂停正在运行的软件【英文标题】:Azure VM suspends running software when not connected through Remote Desktop 【发布时间】:2019-09-05 12:13:39 【问题描述】:

我创建了一个新的 Azure Windows VM,我们在其上安装了我们的自定义 .NET 软件(不是一项服务),该软件使用 Microsoft Outlook 2019 为客户发送工资单。我们的软件会打开一封新的 Outlook 电子邮件,插入必要的文本,附上工资单,然后发送电子邮件。

在通过远程桌面连接时,使用 VM 上的本地管理员帐户,该软件按预期运行,成功打开新电子邮件并通过 Outlook 发送。

但是,当我断开与 VM 的连接(未注销,仅关闭远程会话)时,软件被“暂停”,即我们的软件不会创建任何电子邮件。另外,Outlook 发件箱中排队的邮件也被挂起,直到我们再次登录虚拟机后才会发送出去。

当我们最初在本地 Microsoft Server 2016 上使用与 Azure VM 相同的设置托管 VM 时,断开远程会话并不会暂停我们的软件。这让我相信这是我们缺少的 Azure 上的特定设置。

谁能提供一些关于当我们断开远程会话时 VM 在 Azure 上暂停的原因?

跟进评论

我正在从 Azure 运行全新安装的 Windows 10 Pro v1903 VM。 Windows 是最新的。所有电源和屏幕设置均已关闭/禁用。我在第二个 Azure Windows 10 虚拟机上遇到了同样的问题,所以问题不是一个安装所独有的。

我进一步探索了 Windows 空闲问题,这个线程是我最大的希望。 https://answers.microsoft.com/en-us/windows/forum/windows_10-windows_install/windows-10-keeps-going-into-sleep-after-1-minute/787e8cea-32ce-4ea0-a281-13c32a75352d?auth=1。然而它并没有解决问题。

我也试过:打开 gpedit.msc。浏览到计算机配置 --> 管理模板 --> Windows 组件 --> 远程桌面服务 --> 远程桌面会话主机 --> 会话时间限制。 启用“设置断开会话的时间限制”并将其设置为从不,但无济于事。

我可以将问题简化如下:我将 Outlook 设置为脱机模式,将 10 封电子邮件排队,将 Outlook 恢复为联机并快速断开远程会话。我希望应该发送电子邮件。但是,这不会发生,只有在我重新登录远程会话时才会发送。

我相信问题可能是当我断开远程会话时用户被“注销”。请记住,我们在本地 Microsoft Server 2016 上运行的是较旧的 Windows 10 VM,当远程会话断开时,它不会注销远程用户。重要的是,我们本地服务器上的 Windows 10 VM 版本是 v1809。这可能是一个线索吗?

【问题讨论】:

嗯...您是否检查过 Windows 电源设置没有让虚拟机进入睡眠状态?我没有看到 Azure 对我的虚拟机这样做。 感谢里卡多的建议。不是电源问题,但可能是 Windows 10 更新问题。查看我更新的 cmets。 【参考方案1】:

当您通过单击 Azure Windows Server 2016 数据中心窗口右上角的X 符号断开远程会话时,您将看到以下消息。

这意味着在您断开当前远程会话后,远程计算机上的程序将继续运行。您可以尝试通过这种方式断开会话,或者尝试通过访问事件查看器---windows日志---系统找到一些线索。

另一个建议是创建另一个具有不同映像或相同映像的 VM,以将结果与当前 VM 进行比较。检查 VM 是否已安装最新更新,并且电源选项设置为 never 使 VM 进入睡眠状态。

【讨论】:

感谢南希的洞察力。根据您的反馈,我已在后续 cmets 中附加了我的初始问题。 测试一下,能否将v1903中的一个大文件复制到另一个虚拟机,然后看看远程会话断开后是否会挂起。 我相信我找到了问题所在。此问题与 Azure 无关,而是特定于 Windows 10 v1903,与 Outlook(365 或 2019 以及最新的 Office 版本 v1908)一起使用。用户注销时,Outlook 将暂停。我已确认 Outlook(365 或 2019 版本 v1908)在 Windows 10 v1903 上停止电子邮件通信,但在 Windows 10 v1809 上没有。也许我应该关闭这个踏板并重新提交新的? 其他操作,即复制等在 Windows 10 v1903 上暂停。我只发现 Outlook 被挂起。【参考方案2】:

所有应用程序都在 Windows 中的安全上下文下运行。特定用户在登录时启动一个 Windows 会话,当会话终止时,所有正在运行的应用程序都将终止。

要使用户帐户能够在没有 Windows 会话的情况下运行应用程序,您有两种选择;使应用程序成为服务,并授予帐户作为服务登录的权限,或使用 Windows 调度程序“无论用户是否登录都运行”。

【讨论】:

以上是关于Azure VM 在未通过远程桌面连接时暂停正在运行的软件的主要内容,如果未能解决你的问题,请参考以下文章

如何将调试器附加到在 Windows Azure VM 上运行的应用程序?

解决Azure虚拟机远程桌面连接不上的问题

一个Azure VM RDP连接问题

QTP+VM:为啥当我没有通过远程桌面连接到虚拟机时,点击命令没有执行?

如何在Windows Azure上搭建SSTP VPN

windows azure怎么直接用远程连接