2016-08-27 2 views
1

У меня есть консольное приложение, написанное на C#, которое планируется запустить каждый день, используя встроенный планировщик задач Windows. Каждый раз, когда он запускается, черная консольная панель появляется на время ее выполнения, а затем закрывается. Я ничего не пишу на консоль.Как запустить консольное приложение в 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.I хочу зарегистрироваться только один раз, когда программа запускается. После каждого повторного добавления снова и снова. Мне нужно предотвратить это. Если есть какие-либо советы, это очень помогает.

+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 Я изменил тип output.it был очень полезен. – Selman

+0

Разве это не то, что я сказал: P Рад, что вы получили то, что искали. –

3

Запуск фоновых задач не является тривиальной, и вы должны быть осторожны, вы можете легко сбить весь домен приложения.

Это хороший пост по этому вопросу.

How to Run Background Tasks

Я настоятельно рекомендую Hangfire если вам нужно управлять несколькими заданиями, выполняемыми различных графиков. Это отличный инструмент с открытым исходным кодом.

+1

Я на нем. Спасибо чувак – Selman