我想看看我是否可以從asp.net-mvc網站管理一堆windows計劃任務(設置新任務,更新現有任務的頻率等),因爲我們希望允許非技術用戶更新此信息(所以我們想避免人們直接登錄到網絡服務器等)是否可以通過asp.net-mvc網站或其他遠程選項管理Windows調度程序?
我看到你可以從一般的C#做到這一點(下面的鏈接),但不確定權利等,這將使它有可能管理通過web應用程序。
如果它無法從網絡,是否有其他「遠程」選項,以便人們可以做到這一點沒有要在特定的盒子?
我想看看我是否可以從asp.net-mvc網站管理一堆windows計劃任務(設置新任務,更新現有任務的頻率等),因爲我們希望允許非技術用戶更新此信息(所以我們想避免人們直接登錄到網絡服務器等)是否可以通過asp.net-mvc網站或其他遠程選項管理Windows調度程序?
我看到你可以從一般的C#做到這一點(下面的鏈接),但不確定權利等,這將使它有可能管理通過web應用程序。
如果它無法從網絡,是否有其他「遠程」選項,以便人們可以做到這一點沒有要在特定的盒子?
是的,你可以只使用它可以在C中發現的taskschd.dll:\ WINDOWS \ Syswow64資料\ 只是參考,爲您的Web應用程序,並使用它像這樣
using TaskScheduler;
namespace Test
{
public class Class1
{
public void Test()
{
var taskService = new TaskScheduler.TaskScheduler();
taskService.Connect();
var rootFolder = taskService.GetFolder(@"\");
var registeredTasks = rootFolder.GetTasks(0);
foreach (var registeredTask in registeredTasks)
{
}
}
}
}
要證明給你看它跑這裏是運行代碼的截圖從網頁
叫你可以從我的機器上看到我一把抓起我的任務調度5個項目。
BTW我爲您創建了整篇文章在我的博客上如何:
在這裏http://macaalay.com/2013/10/02/programmatic-management-of-scheduled-task/
我寧願使用Quartz.net,它對我來說看起來更加靈活,而不是Windows任務調度程序,但這個想法可以適用於這兩種調度程序。請看下面的案例來獲得這個想法,也許這可以幫助你:
編輯: 你必須記住以下幾點: 一個WCF會給你狀態你需要有一個「狀態」來處理Web應用程序任務,石英可以處理作業以讀取數據庫並設置新的任務(石英或windows sche duler),而Web表單只是處理這些操作的前端。
建立在石英工作couls那麼容易,因爲:
public class ReadDBJob : IJob
{
public void Execute(IJobExecutionContext context)
{
// Do your work to read the database
// and create the tasks that you need
}
}