c# - 从 Web 应用程序运行计划任务

标签 c# asp.net .net scheduled-tasks

我正在使用以下代码从我的 Web 应用程序执行 Windows 计划任务。 Web 应用程序和计划的应用程序都在同一台服务器上运行。

var proc = new Process
{
    StartInfo =
    {
        UseShellExecute = false,
        FileName = @"C:\Windows\System32\schtasks.exe",
        Arguments = "/run /tn StartDataSync",
        UserName = "admin123",
        Password = passwd
    }
};
proc.Start();
proc.WaitForExit();

现在我想从同一网络域中另一台机器上运行的 Web 应用程序运行相同的预定应用程序。当我研究时,我发现 我可以在/S 系统参数中指定我想要连接的远程计算机的名称或 IP 地址。所以我尝试了以下代码,但它不起作用。

var proc = new Process
{
    StartInfo =
    {
        UseShellExecute = false,
        FileName = @"C:\Windows\System32\schtasks.exe",
        Arguments = "/run /S 192.168.5.202 /tn StartDataSync",
        UserName = "admin123",
        Password = passwd
    }
};
proc.Start();
proc.WaitForExit();

最佳答案

试试这个答案..根据这个 post

using TaskScheduler;

using (TaskService tasksrvc = new TaskService(server.Name, login, domain, password))
{
    Task task = tasksrvc.FindTask(taskName);
    task .Run();       
}

任务调度程序的 dll 可以在这里找到 https://github.com/dahall/taskscheduler

关于c# - 从 Web 应用程序运行计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23440749/

相关文章:

c# - HTML 敏捷解析

c# - 原始泛型类型列表 C#

c# - 为什么 ConfigureAwait(false) 在 Task.Run() 有效时不起作用?

c# - 使用 XML 文件绑定(bind)下拉列表

.net - 功能键的标准操作列表

.net - Windows 兼容文件系统的文件时间分辨率

javascript - GridView 中的全选不起作用

c# - 防止在 QueryString.Add() 处进行 URL 编码

asp.net - 首先使用数据库将列添加到aspnetusers

c# - 在 Linux 中使用带有 DbContext 的 Entity Framework 有问题