Topshelf Windows服务超时错误7000 7009

问题描述 投票:2回答:3

我有一个使用Topshelf作为服务主机在vb.NET中编程的Windows服务。有时服务无法启动。在事件日志上,SCM写入错误7000和7009(服务未及时响应)。我知道这是一个普遍的问题,但是我(认为)我尝试了所有尝试都没有结果。该服务仅依赖于WMI,并且没有耗时的操作。我读了这个问题(Error 1053: the service did not respond to the start or control request in a timely fashion),但是没有一个答案对我有用。

我尝试过:

  • 设置topshelf的启动超时。
  • 在“ OnStart”方法的第一行中请求其他时间。
  • 为请求额外的时间向SCM设置一个定期计时器。
  • 删除TopShelf并使用Visual Studio服务模板进行服务。
  • 将初始化代码和“ OnStart”代码移动到新线程以立即返回。
  • 以发布模式构建。
  • 在app.config文件(每个应用程序)中设置Set GeneratePublisherEvidence = false。
  • 在Internet设置(每台计算机)中未选中“检查发布者的证书吊销检查”。
  • 删除所有备用流(以防某些dll被标记为Web并被阻止)。
  • 已删除任何“调试代码”
  • 将窗口的常规服务超时增加到120000ms。

也:

  • 该服务不会尝试以任何方式与用户的桌面进行通信。
  • UAC被禁用。
  • 该服务在本地系统帐户上运行。

我相信服务本身的代码不是问题,因为:

  • 已经生产了两年以上。
  • 通常该服务可以正常启动。
  • 事件日志中没有记录异常。
  • 不会调用该服务的“出现错误”选项(因为该服务实际上并没有失败,只是没有响应SCM)
  • 我已经注释掉了几乎所有内容,追求了这个错误! ;-)

由于我完全没有想法,欢迎任何帮助,并且我已经为此苦苦挣扎超过15天了...

vb.net service timeout topshelf
3个回答
0
投票

我遇到了70007009问题,由于A timeout was reached (30000 milliseconds)与安装服务的方式之间的配置错误,所以该问题立即失败(即使错误消息显示TopShelf)。>

最底线-您在HostConfigurator.SetServiceName(name)中传递的内容必须与完全

已安装的Windows服务的SERVICE_NAME相匹配。

如果它们不匹配,它将立即失败,并且您会收到两条事件日志消息。


0
投票

对我来说,7009错误是由我的NET核心应用程序产生的,因为我正在使用此构造:


-1
投票

安装Windows Creator's Edition更新后,我开始对某项服务进行此操作。基本上,这使整个计算机变慢,这就是我认为引发问题的原因。甚至Windows服务之一都存在超时问题。

© www.soinside.com 2019 - 2024. All rights reserved.