[英]Windows Services and shutting down EC2 nodes
现在,我已经在测试床EC2节点上运行了一个相当简单的Windows服务,基本上是:
我们在Linux EC2实例中使用它非常好,并且Windows服务在启动,检测信号和手动停止时都可以正常工作。
问题在于,通过ElasticFox,Rightscale等终止节点时,该服务似乎永远不会停止,或者至少它永远不会进行Web服务调用。 有什么想法吗?
[请注意,这是从我在AWS开发人员论坛上的帖子中逐字复制的,但是与SO相比,这是极低的流量。 道歉!]
编辑 :关于网络中断的问题,我也不是Windows服务最精通的人,如果将Netman设置为服务依赖项,是否可以保证服务终止的顺序呢?
关于EBS,我们为在普通Linux实例上运行的类似系统采用的模型将应用程序服务器视为短暂的,因此EBS不会给我们带来太多好处。 我们在EC2之上使用Rightscale,这使钩子可以关闭Linux实例,因此我们只是将实例的日志发送到其他地方。
编辑#2 :好吧,我从AWS员工那里得到的回复比我预期的要快得多:
对于Windows,由于某些技术限制,通过API终止(这意味着通过elasticfox,rightscale等)是很难进行的。 这意味着就像用电源按钮关闭计算机而不是关机一样。
有趣..
我使用新的Windows EBS根卷测试了启动和关闭组策略脚本。 当您停止和启动这些实例时,这两个脚本都会在适当的顺序中按预期运行。 因此,一种替代方法是使用EBS根卷运行您的实例并发出stop命令,以确保Windows实例执行所有关闭序列。 实例停止后,您应该能够终止该实例并释放与其关联的所有EBS卷。
Windows关闭时发生了很多事情,所以我猜想您的Web服务调用所需的东西已经停止了,首先是网络连接。
这有点棘手,因为您无法在C或D驱动器上保留本地日志文件来检查是否至少尝试了一次调用,因为一旦实例停止,您将永远无法再次调用它们。 您是否将EBS卷与可能包含日志文件的实例一起使用?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.