【问题标题】:Error after stopping service through Task Scheduler通过任务计划程序停止服务后出错
【发布时间】:2018-05-25 10:01:29
【问题描述】:

我在 Windows Server 2012 上运行了一个名为 FileWatcher 的服务。它将文件检入文件夹并执行其他操作。 我必须在每天凌晨 2 点停止并重新启动服务,所以我配置了两个计划任务:第一个在凌晨 2 点停止服务,第二个在凌晨 2 点启动它。

一切正常。服务停止,然后重新启动。但是,如果我检查事件查看器,我会发现一些错误。

  • 2.00.00 AM:服务已成功停止。
  • 2.00.00 AM:未能停止服务。 System.InvalidOperationException:检测到未处理的异常---> System.InvalidOperationException:当任一应用程序没有控制台或控制台输入已从文件重定向时,无法读取密钥。试试 Console.Read。
  • 2.00.00 AM:说明:由于未处理的异常,进程已终止。 异常信息:System.InvalidOperationException
  • 2.00.00 AM:错误应用程序名称:FileWatcher.exe,版本:1.0.0.0,时间戳:0x5aeae776 错误模块名称:KERNELBASE.dll,版本:6.3.9600.18340,时间戳:0x5736541b 异常代码:0xe0434352 故障偏移:0x00014878 错误进程ID:0x1a6c
  • 2.01.01 AM 服务启动成功。

发生了什么事?我的意思是,服务停止并重新启动,为什么我会收到这些错误?我已经检查了另一个类似的问题,这个人解决了将项目从 Windows 应用程序更改为控制台应用程序的问题。我的已经是控制台应用程序。

提前谢谢你,M。

【问题讨论】:

    标签: c# service task schedule event-viewer


    【解决方案1】:

    当你手动运行/停止服务时,你能重复错误吗?你能找到发生这种情况的线路吗?

    当任一应用程序没有控制台或控制台输入已从文件重定向时,无法读取密钥。试试 Console.Read。

    这是一个疯狂的猜测,但您的服务中有 Console.ReadKey()

    【讨论】:

    • 非常感谢!!!我解决了它,从 Console.Readkey 更改为 Console.Read。略有不同,但就我而言,它并没有改变程序功能。非常感谢!