如何为我的ASP.Net Web应用程序测试Windows服务调度程序?

时间:2012-04-27 20:26:46

标签: asp.net windows-services

我为我的网络应用创建了一个调度程序,设置为每隔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");
        }
    }
}

提前致谢!!

1 个答案:

答案 0 :(得分:1)

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

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

其次,你不能构建和调用这样的服务。如果您希望服务在定时间隔内执行某些操作,则需要在服务中使用计时器及其所有工作。

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

需要了解更多关于您要完成的任何帮助。