我在服务的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:依赖服务不存在,或已被标记为删除”,为什么?

解决方案 »

  1.   

    卸载重装,哈哈,在CSDN上逛了几天,总算看到个写服务程序的人了,唉,难得啊!
      

  2.   

    installutil ...exe
    这样装的吗
      

  3.   

    具体我也不知道,我也是刚开始写服务程序的,总之问题多多,刚开始我也是这样,后来用installutil安装就没再有这个问题
      

  4.   

    还有就是
    time=new System.Timers.Timer(3000);
    time.Elapsed+=new System.Timers.ElapsedEventHandler(time_Elapsed);
    time.Start();
    这三句话别写在OnStart里,很容易出错
      

  5.   

    Timer控件不用sart()的,可以自运行的
      

  6.   

    我不是在组件那边拉的,是在代码里写的应该要start吧
    要运行代码是写在OnStart里吧?
      

  7.   

    Timer 不用 strat的,要运行代码也不一定是要写在OnStart里
      

  8.   

    time.Elapsed+=new System.Timers.ElapsedEventHandler(time_Elapsed);
    这里已经可以自运行的啦
      

  9.   

    声明:
    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;
    }
      

  10.   

    还是不大清楚,能把你做过的打包给我吗
    [email protected]
      

  11.   

    邮箱用不了,郁闷,程序有问题,连邮箱也有问题,烦,我还是把过程讲一下吧:
    建一个新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;
    }
    大概过程就是这样
      

  12.   

    安装包生成时提示:dotNETFXRedist_x86_chs.msm 不能用于重新发布 .NET Framework。请排除此合并模块。
    什么原因?