设置为“启动时”时,控制台应用程序不会通过任务计划程序启动

问题描述 投票:0回答:3

我在 C#.Net 中实现了一个简单的控制台应用程序,该应用程序启动后立即将一些内容写入“C:\MyFolder”中的文本文件。我已在任务计划程序中使用以下属性配置应用程序。

General tab->Run whether user is logged on or not.
Triggers -> At system start up
Actions -> Program/Script = Path to my exe ( E:\MyProject\Test.exe)
           Start-in = Path with exe name . (E:\MyProject) 

我希望在启动计算机后会出现该文本文件。那是在登录桌面之前,因为我已将属性设置为“系统启动时”而不是“登录时”。但是,只有当我登录到计算机时,我的 exe 才会开始运行并复制文件。是因为它是一个控制台应用程序,需要桌面/UI 才能启动吗?

那么,在我们没有用户登录或默认登录的服务器计算机中,情况会怎样?如何让我的控制台应用程序在登录之前/在没有登录的情况下启动/或在后台工作?

请澄清!!

谢谢

c#
3个回答
1
投票

运行控制台应用程序确实可以通过任务计划程序运行。我在公司环境中使用其中的几个来执行一些 VB/BAT 不感兴趣的文件级任务。您只需确保将其设置为“无论用户是否登录都运行”,并确保您选择的用户具有适当的权限(例如,如果您要连接到 FileShare 来执行任务,请确保用户启动应用程序可以访问 NFS、SAMBA 存储等)。另请检查事件日志中是否有 .NET 错误,以及任务计划程序中的任务历史记录。

以上仅供参考,但由于您已经检查过 - 我将在您的控制台应用程序中添加一些日志记录。将其写入与 EXE 位于同一目录中的文本文件,然后通过这种方式输出任何应用程序错误,以查看它是否正在启动以及是否存在继续出现问题(例如权限问题等)。


1
投票

对我来说,问题是因为相对路径。任务运行成功,但我看不到任何日志。我更改为绝对路径,它解决了我的问题。


0
投票

Вероятно не указана рабочая папка

© www.soinside.com 2019 - 2024. All rights reserved.