2016-08-27 121 views
1

我使用C#編寫控制檯應用程序,該應用程序計劃每天使用Built in Windows Task Scheduler運行。每次運行時,黑色控制檯框會在執行期間彈出,然後關閉。我沒有寫任何東西給控制檯。如何在MVC中運行控制檯應用程序

1.我在搜索結果中發現了其他問題我做了任務調度器。 但我不能決定其中我會在ASP.Net Mvc網絡應用程序中編寫代碼。 這是代碼。 我試過這個。

private void CreateTaskRunDaily() 
{ 
    using (TaskService ts = new TaskService()) 
    { 
     TaskDefinition td = ts.NewTask(); 
     td.RegistrationInfo.Description = "My first task scheduler"; 

     DailyTrigger daily = new DailyTrigger(); 
     daily.StartBoundary = Convert.ToDateTime(DateTime.Today.ToShortDateString() + " 16:30:00"); 
     daily.DaysInterval = 1; 
     td.Triggers.Add(daily);    
     td.Actions.Add(new ExecAction(@"C:/sample.exe", null, null)); 
     ts.RootFolder.RegisterTaskDefinition("TaskName", td); 
    } 
} 

我無法決定我應該在哪裏付諸實踐。

2.我想在程序運行時只註冊一次,所以每次運行時都要重新添加,一遍又一遍。我需要防止它。 如果有任何建議,它會有很大的幫助。

+0

我不太清楚你在這裏試圖實現什麼,你是否試圖從ASP.NET應用程序按計劃執行控制檯應用程序? – SimonGates

+0

@SimonGates是的,並添加任務調度程序,但我不知道我需要添加代碼的確切位置? – Selman

回答

1

MVC不會爲您運行計劃任務,並非沒有不屬於MVC項目的黑客。我建議在控制檯應用程序上更改項目屬性,並將輸出類型設置爲Windows應用程序。這將使控制檯無法顯示。您也可以以不同的用戶身份運行。

如果你依然熱衷,檢查了這一點: http://www.radicalgeek.co.uk/Post/10/running-a-task-on-a-schedule-from-an-mvc-web-application

+0

感謝您的分享。我發現這個http://stackoverflow.com/questions/2686289/how-to-run-a-net-console-app-in-the-background 我改變了輸出類型,這是非常有幫助的。 – Selman

+0

是不是正是我所說的:P 很高興你有你在找什麼。 –

3

運行後臺任務是不平凡的,你要小心,你可以很容易搞垮整個應用程序域。

這是一個關於這個問題的好帖子。

How to Run Background Tasks

我強烈建議Hangfire如果你需要管理運行不同的時間表多個作業。這是一個偉大的開源軟件。

+1

我在上面。謝啦 – Selman

相關問題