我正在开发一个Web应用程序,我使用Global.asax实现了作业调度程序。我已经使用线程在特定时间内开始工作。
如果我通过visual studio运行应用程序,它可以正常工作。但是当我发布并将其部署到服务器时,线程不起作用。
请帮我解决此问题。有没有替代方案。
请在下面找到示例代码,
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)
我不认为在global.asax中生成一个线程是个好主意。有关更好的解决方案,请参阅此question。
答案 1 :(得分:0)
如果您的网站上没有活动一段时间,它会自动关闭。
为了规避这一点,谷歌“保持asp.net网站活着”
但是你会发现一堆像黑客一样的胶带。我会改变架构。