0

我为我的网络应用程序创建了一个调度程序,设置为每 3 秒触发一次。我想使用 Console.Write("bob") 来查看调度程序是否正常工作,但什么也没发生,只有在单击“调试”按钮后才创建网页。我是在测试错误的方式还是调度程序确实不起作用?

这是我写的代码:

namespace Scheduler
{
    public partial class CheckExpireService : ServiceBase
    {
        private CheckExpireJob job;
        private Timer stateTimer;
        private TimerCallback timerDelegate;


        public CheckExpireService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            job = new CheckExpireJob();
            timerDelegate = new TimerCallback(job.CheckExpireApplicants);
            stateTimer = new Timer(timerDelegate, null, 1000, 3000);
        }

        protected override void OnStop()
        {
            stateTimer.Dispose();
        }
    }
}


namespace Scheduler
{
    class CheckExpireJob: ServiceBase
    {
        public void CheckExpireApplicants(object stateObject) {
        Console.Write("bob");
        }
    }
}

提前致谢!!

4

1 回答 1

1

(我打算发表评论,但编辑和回答是我似乎唯一可用的东西。)

首先,我认为您不能在调试模式下运行 Windows 服务……它必须作为服务编译和安装,并使用 Windows 中的服务管理器启动和停止。如果您在 Web 应用程序的某处有此代码,它将无法工作。它需要是一个单独的项目。

其次,您不能像这样构造和调用服务。如果您想要一个按时间间隔执行某项操作的服务,您需要在服务中拥有计时器及其所有工作。

您无法安排 Web 应用程序...当有人访问该页面时它会运行。你真正需要安排什么?定期更新 Web 应用程序将从中提取的数据?

需要更多地了解您要完成的工作才能获得帮助。

于 2012-04-27T20:55:26.370 回答