我有一个C#控制台应用程序,它与SQL Server数据库交互,我想将其配置为在系统启动时和用户登录之前启动。我的应用程序是一个无限循环,它从/向数据库读取/写入数据(在处理之后),并将日志消息写入控制台窗口。
我试过Windows任务调度程序。该应用程序启动,但我有两个问题:
我真的不知道这个问题是否在Windows中有解决方案(或者可能是解决方法),但我确实需要它,因为服务器位于一个遥远的位置,我们在该区域遭受电源切断,所以我必须定期检查它并在每次发生截止时启动我的应用程序。
感谢您的帮助。
答案 0 :(得分:1)
我怀疑这里要做的就是使用两个程序。首先,Windows服务在启动时启动,并在失败时重新启动。此服务可能需要连接SQL服务器凭据(不是Windows凭据)或在有权访问数据库的服务ID下运行。第二个程序将从用户登录开始,并将从Windows服务读取/显示任何日志消息。本质上,它在服务编写的日志文件中的功能类似于“尾部”,但您可以提出更复杂的记录器注册过程,以便它可以直接从服务接收消息。
答案 1 :(得分:1)
您可能希望重构您的应用以成为Windows服务。您将不得不忍受这样一个事实,即您无法直接“访问”应用程序本身。通常,您需要创建一个可以管理服务的配套应用程序。想想你在Windows上熟悉的服务...... IIS,SQL Server等......在高层次上,它们都以这种方式工作。