我有这个服务注册和启动时,电脑是打开。该服务只是监测文件夹的活动,它应该写入一个文本文件的一些数据时,电脑正在关闭。
我尝试在StopAsync
函数被触发时执行此操作,该函数是BackgroundService实现的一部分。
为了简化测试,我刚刚添加了一条日志消息,下次重新启动电脑时,该消息将出现在windows事件日志中。如果我手动停止服务,该消息将正确出现,即使在执行保存文件任务时,也会出现这种情况。
但是当我关闭PC时,一旦我再次启动它,所有其他消息都在Windows事件日志中,除了最后一条,来自StopAsync
的消息。
我的StopAsync
函数如下所示:
public override Task StopAsync(CancellationToken cancellationToken) {
logger.LogWarning("Test Service is Stopping...");
return base.StopAsync(cancellationToken);
}
我没有设置"快速启动"系统配置。
我错过什么了吗?
1条答案
按热度按时间col17t5w1#
尝试使用
RequestAdditionalTime
的校正覆盖方法OnShutdown()
。我认为问题可能是操作系统在调用
StopAsync()
之前强制终止了您的服务。