1

目前我正在使用 Windows 服务继续在后台运行一些作业。这些作业是通过 Quartz.Net 安排的。通常这些是长时间运行的作业,从 5 分钟到 15 分钟不等。如果作业当前正在运行并且用户将尝试关闭 Windows 服务,则它会抛出异常:Windows 服务没有及时响应。

实际上 WindowsService 的 OnShutdown() 方法,我也在尝试关闭 Quartz.Net。我正在调用scheduler.Shutdown(true)以停止调度程序并等待正在运行的作业。如果我将其设为 False,则 Windows 服务将正常停止,但它会将正在运行的作业置于不稳定状态。请帮助我。

4

1 回答 1

6

您收到此错误是因为您的服务未在约定的时间内完成停止。因此,SCM 假定它以某种方式挂起并中止它。

要告诉 SCM 您需要更多时间来完成操作,请调用ServiceBase.RequestAdditionalTime()您的OnStop处理程序。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.requestadditionaltime.aspx

于 2013-04-21T18:44:08.190 回答