2012-01-20 3 views
0

Я разрабатываю веб-приложение, где я реализовал планировщик заданий с помощью Global.asax. Я использовал поток, чтобы начать работу в течение определенной продолжительности.Нить в Global.asax не работает после публикации веб-сайта

Он отлично работает, если я запускаю приложение через визуальную студию. Но когда я публикую и развертываю его на сервере, поток не работает.

Пожалуйста, помогите мне решить эту проблему. Есть ли альтернатива для этого.

Вы можете найти пример кода ниже,

protected void Application_Start() 
    { 
     Thread thread = new Thread(new ThreadStart(ThreadFunc)); 
     thread.IsBackground = true; 
     thread.Name = "ThreadFunc"; 
     thread.Start(); 
    } 

    protected void ThreadFunc() 
    { 
     System.Timers.Timer t = new System.Timers.Timer(); 
     t.Elapsed += new System.Timers.ElapsedEventHandler(TimerWorker); 
     t.Interval = 10000; 
     t.Enabled = true; 
     t.AutoReset = true; 
     t.Start(); 
    } 

    protected void TimerWorker(object sender, System.Timers.ElapsedEventArgs e) 
    { 
     //work args 
    } 

Спасибо,

Виджай

+0

Вы можете поделиться своим кодом? –

+0

@Ravi - Пожалуйста, найдите отредактированный образец кода. –

+0

похоже хорошо. может быть проблемой IIS? почему cant u использует Службы, а не потоки? как @MK. anwserd в его ссылке. –

ответ

0

Я не думаю, порождая поток в global.asax является хорошей идеей. Пожалуйста, см. Это question для получения более совершенных решений.

+0

Теперь я написал службу Windows для выполнения задания планировщика. –

0

Если на вашем сайте нет активности в течение определенного периода времени, он автоматически отключается.

Чтобы обойти это, Google «Keep asp.net сайт живым»

Но вы найдете кучу клейкой ленты-как писак. Я бы изменил архитектуру.

Смежные вопросы