发布网站后,Global.asax中的线程无效

时间:2012-01-20 16:03:12

标签: asp.net publish global-asax web-deployment

我正在开发一个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
    }

谢谢,

维杰

2 个答案:

答案 0 :(得分:0)

我不认为在global.asax中生成一个线程是个好主意。有关更好的解决方案,请参阅此question

答案 1 :(得分:0)

如果您的网站上没有活动一段时间,它会自动关闭。

为了规避这一点,谷歌“保持asp.net网站活着”

但是你会发现一堆像黑客一样的胶带。我会改变架构。