我有一个Windows计划任务,每小时运行一次数据库导入过程,但是我希望用户能够通过点击按钮来按计划启动它一个ASP.net仪表板(在Windows Server 2003的IIS6上运行)。从ASP.net运行Windows计划任务
下完全在后台代码...
var proc = new Process
{
StartInfo =
{
UseShellExecute = false,
FileName = @"C:\Windows\System32\schtasks.exe",
Arguments = "/run /tn Loader",
RedirectStandardError = true,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();
proc.WaitForExit();
...但只有当应用程序池标识设置为本地系统(不理想!)。如果我将其作为网络服务保留,则任务不会启动。所以这可能是一个权限问题。
有没有办法ASP.net可以启动服务器上的计划任务,而无需作为本地系统运行应用程序?如果没有,那么有什么好的选择?
更新:如果没有人知道,我想这是不可能的,所以我会去我的想法让我的Web应用程序向数据库表写入请求(加倍作为审计日志)并创建第二个任务轮询该表并启动主要任务。
为什么你不调用这个任务将在你的web应用程序中调用什么?你为什么要运行这个任务,而不是任务的目标? – Kousha 2013-08-26 11:19:10
好问题。 1我需要以特定用户身份运行任务,并且2它不能与小时计划任务同时运行,如果任务已手动启动,则Windows计划程序无法启动。不过,这不是我详细探讨过的选项。 – Chris 2013-08-27 07:25:43