Windows 如何检测虚拟机何时恢复

Windows 如何检测虚拟机何时恢复,windows,sockets,virtual-machine,hyper-v,hypervisor,Windows,Sockets,Virtual Machine,Hyper V,Hypervisor,我有一个应用程序正在尝试使用utulize虚拟机,这些虚拟机处于挂起模式。为了澄清suspended,我的意思是虚拟机将启动并进入完全启动然后暂停的状态,因此根据需要,机器可以在几秒钟内启动(而不是几分钟的完全启动周期) 现在,一旦我的虚拟机上线,我希望它与消息队列接口。然而,我遇到了一个困难,如果我在虚拟机具有打开的tcp/ip连接(例如到消息队列的连接)时挂起虚拟机,那么套接字直到30-60秒后才会被发现为无效。因此,我想知道是否有一个很好的方法来处理这些类型的问题,通过检测虚拟机是否从暂停

我有一个应用程序正在尝试使用utulize虚拟机,这些虚拟机处于挂起模式。为了澄清suspended,我的意思是虚拟机将启动并进入完全启动然后暂停的状态,因此根据需要,机器可以在几秒钟内启动(而不是几分钟的完全启动周期)

现在,一旦我的虚拟机上线,我希望它与消息队列接口。然而,我遇到了一个困难,如果我在虚拟机具有打开的tcp/ip连接(例如到消息队列的连接)时挂起虚拟机,那么套接字直到30-60秒后才会被发现为无效。因此,我想知道是否有一个很好的方法来处理这些类型的问题,通过检测虚拟机是否从暂停状态恢复


一种解决方法我在没有启用任何网络接口的情况下配置虚拟机,并在建立初始连接之前一直等待连接网络接口,从而获得了一些有希望的结果。但是,我仍然想知道,除了我的场景,还有其他更好的替代方案,或者可以尝试作为备份计划。

作为一种非常简单的解决方法,您可以每秒查看时间。在一个C#项目中,我们使用了NetworkAvailabilityChanged(许多示例可用,例如),反应时间大约为5-10秒。您可以尝试设置tcp保持活动选项。关于Linux的更多信息:Keep alive在这种情况下没有任何好处,它只是一种防止连接关闭的技术。但你忽略了全局,连接已经被强行关闭,这发生在机器暂停时。可能连续多天没有keep alive机制的接收终点;连接将最终关闭。