在用户登录之前启动控制台应用程序

本文关键字:启动 控制台 应用程序 用户 登录 | 更新日期: 2023-09-27 18:27:20

我有一个C#控制台应用程序,它与SQL Server数据库交互,我想将其配置为在系统启动时和用户登录前启动。我的应用程序是一个无限循环,它从数据库读取数据/向数据库写入数据(处理后),并将日志消息写入控制台窗口。

我尝试了windows任务调度程序。应用程序启动了,但我遇到了两个问题:

  1. 应用程序无法访问数据库(错误消息:"无法打开登录请求的数据库"MyDataBase"。登录失败。"从日志文件中提取)
  2. 当我登录到windows时,我无法检索应用程序控制台,它也不在任务管理器的进程列表中

我真的不知道这个问题在windows中是否有解决方案(或者可能有解决方法),但我真的很需要它,因为服务器在很远的地方,我们在那个地区停电,所以我必须定期检查,每次停电时都要启动我的应用程序。

谢谢你的帮助。

在用户登录之前启动控制台应用程序

我怀疑在这里应该使用两个程序。首先,一个windows服务,它在启动时启动,并在出现故障时重新启动。此服务可能需要使用SQL server凭据(而不是Windows凭据)连接,或者在可以访问数据库的服务ID下运行。第二个程序将在用户登录时启动,并读取/显示来自windows服务的任何日志消息。从本质上讲,它的功能就像服务编写的日志文件上的"尾巴",尽管你可以想出一个更复杂的记录器注册过程,这样如果你愿意,它可以直接从服务接收消息。

您可能想要重构您的应用程序,使其成为Windows服务。你将不得不接受这样一个事实,即你不能直接"访问"应用程序本身。通常,你会创建一个可以管理服务的配套应用程序。想想你在Windows上熟悉的服务。。。IIS、SQL Server等…在高层,它们都是这样工作的。