c# - Windows 服务与任务计划程序 - 手动启动

标签 c# .net windows windows-services scheduled-tasks

我正在尝试开发一个应用程序,该应用程序将扫描网站,从网站获取数据,并在给定时间每天 3 次将该数据保存到数据库中,这些数据可以在 xml 配置文件中设置。 作为额外的用户组,每天最多可以手动触发应用程序启动几次。

我正在寻找为此解决方案使用 Windows 服务的优点和缺点,或者我应该设置 3 个将运行控制台应用程序的计划任务吗?

如果我决定使用 Windows 服务,那么在服务已经运行时触发手动启动服务的最佳方法是什么?该组用户将有某种 Web 界面来触发手动启动。

这可以使用计划任务轻松完成。我只需设置一个 3x 计划任务,该任务将在给定时间运行应用程序,并且用户组可以从 Web 界面启动 .exe 文件。但是,如何仅在应用程序尚未运行时才允许用户运行手动触发器?

最佳答案

由于 UI 最终是在 Web 中,因此服务本身不需要任何 UI,我会选择 Windows 服务,该服务可以由用户通过 Web 触发启动,或者在时间到来时自动启动(通过其内部代码)。

然后,要么:

  1. 在服务中,它有一些指示其状态为正在运行的信息,网络应用程序可以捕获该信息来查看它,或者,
  2. 在网络中,存在请求/监控服务状态的机制

我认为相当灵活。我会选择更容易的那个。

关于c# - Windows 服务与任务计划程序 - 手动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191978/

相关文章:

c# - 如何下载没有依赖项的nuget包?

c# - 如何使用 Twitterizer 在 C# 中获取 Twitter 用户时间线

.net - 如何在Visual Studio 2013中删除未使用的功能

.net - app.config 是什么时候创建的,什么时候是 app.exe.config 和有什么区别

c# - 从 AutoCompleteStringCollection c# 中删除重复项

Windows - 嗅探应用程序的文件访问

c# - 重试 Visual Studio C# TestMethod

c# - Plinq 语句在静态构造函数中陷入僵局

c# - 在 C# 中跟踪实例?

c - 混合写入 stdout 和调用 WriteConsole 是否总是以相同的顺序打印到控制台?