【问题标题】:Windows service OnStart not called on AWS EC2AWS EC2 上未调用 Windows 服务 OnStart
【发布时间】:2014-01-07 12:35:10
【问题描述】:

我有一个用 C#.NET 开发的 Windows 服务。它安装在与 Elastic Beanstalk 实例关联的 AWS EC2 实例上。

当我安装服务并启动时,它的 OnStart 事件调用成功,我什至尝试重新启动服务器,这次也成功调用了 Windows 服务的 OnStart 事件。问题是当负载均衡器创建新的 EC2 实例时(因为以前的实例已关闭),那时我的服务也开始了,但没有调用 OnStart 事件。

我确信 OnStart 没有被调用,因为在调用 OnStart 事件后我没有得到预期的结果。

如果您有任何想法,请提供帮助。

【问题讨论】:

  • 你试过调试OnStart()调用吗?
  • @AndreyMyatlyuk 我已经尝试在我的开发系统上进行调试,但是当调用负载均衡器并分配新实例时,无法在 AWS EC2 实例上进行调试。
  • 您无法在日志中打印某些内容?您只需要知道该方法是否被调用。
  • @AndreyMyatlyuk 是的,我已经在 Windows 事件和日志文件中写入了日志,但在这些日志中没有得到任何东西。
  • 从来没有?您能否更新您的问题并提供更多详细信息?就像安装服务时事件日志/日志文件中发生的情况一样?当 AutoScaling 服务创建实例时,事件日志/日志文件中发生了什么?

标签: c# amazon-web-services amazon-ec2 windows-services amazon-elastic-beanstalk


【解决方案1】:

您是否已将服务配置为在 Windows 服务中自动启动?

【讨论】:

    【解决方案2】:

    我遇到过类似的情况,即配置为自动启动的 Windows 服务在 EC2 实例启动时无法启动。随后可以手动启动服务。

    然后我发现一个 Windows 2012 EC2 实例具有a Windows service Ec2Config (*),它在启动时执行一些重要操作,例如安装 EBS 卷和分配驱动器号。

    我将我的服务配置为依赖于 Ec2Config,从那时起它似乎运行良好。

    (*) 在 WIndows 2016 中名称已更改为 Ec2Launch。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2021-03-25
      • 2018-12-08
      • 1970-01-01
      相关资源
      最近更新 更多