【问题标题】:Scheduling console application调度控制台应用程序
【发布时间】:2016-06-30 22:38:37
【问题描述】:

我编写了一个需要通过 Windows 调度程序进行调度的 .NET 控制台应用程序。这样的控制台执行一些网络和数据库活动并写入日志文件。如果在桌面/命令提示符下运行该应用程序,但如果我尝试通过调度程序运行它,它会拒绝启动。我面临的另一个问题是对 app 文件夹的写入权限。即使我为包含要由“所有人”写入的应用程序二进制文件的文件夹设置权限,该应用程序似乎也无法创建日志文件和/或向其附加数据。如果我以管理员权限(在桌面上)运行应用程序,问题就解决了,但如果我在调度程序中将 Activity 定义为以更高的权限运行,这无论如何都无法解决。

【问题讨论】:

  • 如今创建桌面交互的程序被调度程序阻止的情况并不少见——尤其是在服务器上..
  • 你可能最好写一个 Windows 服务而不是一个预定的控制台应用程序
  • @Kritner 以您建议的方式,我必须自己管理任务的调度。有没有办法创建由外部工具安排的单次服务?我认为这无论如何都不能解决写权限错误问题。
  • @BugFinder 也许我失败了,但控制台应用程序无法与桌面交互...
  • 没有机会在使用中使用 Windows 窗体,没有弹出框,什么都没有?你的应用是做什么的?

标签: c# .net console scheduled-tasks


【解决方案1】:

我发现了问题...http://support.microsoft.com/kb/2452723 Action 的“Start In”参数似乎不应该包含引号。 当然,对于分配给任务的用户,该文件夹应该是“可写的”。

【讨论】:

    【解决方案2】:

    最好的做法是创建一个具有管理员权限的服务帐户,并在该帐户下安排任务,然后选择无论用户是否登录都运行的选项。 这种方法在有 Active Directory 的情况下更加相关。

    希望这会有所帮助, 顶点

    【讨论】:

    • 我尝试创建一个具有管理员权限的新用户,但没有运气。该命令仍未执行,问题似乎又是应用程序文件夹的写权限(顺便说一句,新创建的用户已获得对此文件夹的完全控制权限)。顺便说一句,我在 Windows 10 Home 中工作。
    • 不,我不是指用户帐户。您需要一个特定的服务帐户。 technet.microsoft.com/en-us/library/cc739458(v=ws.10).aspx 是您最好的选择(我怀疑是否有 Windows 10 指南,但想法是一样的)。祝你好运,Apex。
    • 好的,我明白了,当然在服务器上我会这样做,但在 Win10 Home 上没有其他方法可以做到...afaik
    猜你喜欢
    • 2013-09-15
    • 2018-07-29
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多