我在服务的OnStart里实例了一个计时器
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
eventLog1.WriteEntry("In OnStart");
time=new System.Timers.Timer(3000);
time.Elapsed+=new System.Timers.ElapsedEventHandler(time_Elapsed);
time.Start();
}
定时事件里向数据库写记录(这个没错),在安装服务过程都正常,在控制面板里的服务里也年看到添加的服务,但就是启动时出现“错误1075:依赖服务不存在,或已被标记为删除”,为什么?
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
eventLog1.WriteEntry("In OnStart");
time=new System.Timers.Timer(3000);
time.Elapsed+=new System.Timers.ElapsedEventHandler(time_Elapsed);
time.Start();
}
定时事件里向数据库写记录(这个没错),在安装服务过程都正常,在控制面板里的服务里也年看到添加的服务,但就是启动时出现“错误1075:依赖服务不存在,或已被标记为删除”,为什么?
这样装的吗
time=new System.Timers.Timer(3000);
time.Elapsed+=new System.Timers.ElapsedEventHandler(time_Elapsed);
time.Start();
这三句话别写在OnStart里,很容易出错
要运行代码是写在OnStart里吧?
这里已经可以自运行的啦
private System.Timers.Timer SmsTimer;
private System.Diagnostics.EventLog eventLog1;
InitializeComponent():
this.SmsTimer = new System.Timers.Timer();
this.eventLog1 = new System.Diagnostics.EventLog();
((System.ComponentModel.ISupportInitialize)(this.SmsTimer)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
this.SmsTimer.Enabled = true;
this.SmsTimer.Interval = 10000;
this.SmsTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.SmsTimer_Elapsed);
this.AutoLog = false;
((System.ComponentModel.ISupportInitialize)(this.SmsTimer)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
之后:
private void SmsTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
this.SmsTimer.Enabled =false;
//处理方法
this.SmsTimer.Enabled =true;
}
[email protected]
建一个新service工程后
声明两个变量:
private System.Timers.Timer SmsTimer; //时钟
private System.Diagnostics.EventLog eventLog1; //事件在InitializeComponent()内加入
this.SmsTimer = new System.Timers.Timer();
this.eventLog1 = new System.Diagnostics.EventLog();
((System.ComponentModel.ISupportInitialize)(this.SmsTimer)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
this.SmsTimer.Enabled = true;
this.SmsTimer.Interval = 10000;
this.SmsTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.SmsTimer_Elapsed);
this.AutoLog = false;
((System.ComponentModel.ISupportInitialize)(this.SmsTimer)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();最后写这样一段话:
private void SmsTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
this.SmsTimer.Enabled =false;
//此处添加处理数据方法如:insert into jobs .....
this.SmsTimer.Enabled =true;
}
大概过程就是这样
什么原因?