【问题标题】:Starting Service through Octopus powershell fails for timeout通过 Octopus powershell 启动服务超时失败
【发布时间】:2020-02-19 13:01:22
【问题描述】:

我想部署一个我构建的应用程序,我正在尝试通过 Octopus 启动它。 这个可执行文件只是一个使用 Topshelf 作为 Windows 服务运行的 .net 应用程序。然而,它并不是刚才所说的 Windows 服务本身。它只是一个使用 Topshelf 的应用程序。 我通过章鱼运行这个可执行文件的方式只是运行exe。无非就是一行脚本调用这个exe。 不幸的是,我得到的错误是:

YourTestService 服务因以下错误而无法启动: 服务未及时响应启动或控制请求。 等待 YourTestService 服务连接时超时(30000 毫秒)。

我的服务确实,如果手动启动,需要 1 多分钟。

通过阅读here,我发现这是因为我尝试通过 powershell 脚本运行 .exe,而背后的策略是默认超时时间为 20 秒(根据该解决方案中所写的内容,但在我的情况下,这个超时时间是 30 秒)。

所以我看到了两种可能的解决方案:

1) 以某种方式增加超时策略

2) 不使用我自己制作的 powershell 脚本在 Octopus 中运行 exe。

任何人都可以提供帮助吗?

【问题讨论】:

  • 调用你的 .exe 使用 bash/shell 脚本。

标签: .net powershell deployment octopus-deploy octopus


【解决方案1】:

我在所有服务中都使用System.Threading.Timer 和间隔。我想拥有 System.ServiceProcess.ServiceBase.OnStart() 方法非常轻量级,它只初始化基础组件。我所有的服务都在几秒钟内启动。

如果在您的情况下不可能,您可以覆盖注册表中的默认超时:

Microsoft Support

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 2021-06-18
    • 2022-01-12
    • 1970-01-01
    • 2011-12-07
    • 2016-11-10
    • 1970-01-01
    • 2017-02-10
    相关资源
    最近更新 更多