gpt4 book ai didi

c# - 为什么这个服务是 "not responding to the start or control request in a timely fashion"?

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:32 26 4
gpt4 key购买 nike

背景:一位客户给了我一个第三方开发的 Windows 服务,他们希望我为他们运行该服务。但是,当我启动该服务时,它超时并且出现 1053“服务未响应......及时”错误。

我已经反射程序集以在其启动方法中获取它正在执行的代码,但粗略地看一下它似乎应该返回。

实际问题:有人可以解释为什么此服务会导致 1053 错误吗?

(检查日志文件已确认计时器已初始化并在服务终止前多次触发。)

private void InitTimers()
{
if (this._config.RunMode == RunModes.Continuous)
{
this.srvcTimer.Interval = Math.Max(this._config.Interval.TotalSeconds, 1.0) * 1000.0;
}
else
{
this.srvcTimer.Interval = 60000.0;
}
this.srvcTimer.AutoReset = true;
this.srvcTimer.Enabled = true;
}

最佳答案

服务构造函数必须以“及时”的方式返回,服务才能成功启动。这意味着您不能在构造函数中启动一个可能代价高昂的操作,而必须将其委托(delegate)给另一个线程。

通常,您可能会发现在开发服务时连接到本地数据库没问题,但一旦部署它并且必须通过 Internet 连接,您会发现它失败了。

在没有看到构造函数中的确切代码的情况下,我不能肯定地说,但如果将其移至线程中,服务应该会成功启动。显然,这意味着您需要有一些方法来检查服务是否已正确启动,并从线程向主程序报告错误。

关于c# - 为什么这个服务是 "not responding to the start or control request in a timely fashion"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com