我为我的网络应用创建了一个调度程序,设置为每隔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");
}
}
}
提前致谢!!
答案 0 :(得分:1)
(我打算发表评论,但编辑和回答是我似乎唯一可用的东西。)
首先,我认为您无法在调试模式下运行Windows服务...它必须作为服务进行编译和安装,并使用Windows中的服务管理器启动和停止。如果您在Web应用程序中的某处具有此代码,则无法使用。它需要是一个单独的项目。
其次,你不能构建和调用这样的服务。如果您希望服务在定时间隔内执行某些操作,则需要在服务中使用计时器及其所有工作。
您无法安排网络应用...当有人访问该网页时,它会运行。你真的需要安排什么?定期更新Web应用程序将从中获取的数据?
需要了解更多关于您要完成的任何帮助。