无法启动服务:服务未响应控制语句

时间:2012-06-15 17:39:10

标签: c# windows-services install

我知道这是一个非常常见的错误,通常与Windows服务的onStart方法有关,但我无法弄清楚为什么这个不起作用。

通过Windows事件查看器显示错误的堆栈跟踪:

at System.Diagnostics.EventLog.FindSourceRegistration(System.String, System.String, Boolean, Boolean)
   at System.Diagnostics.EventLog.SourceExists(System.String, System.String, Boolean)
   at System.Diagnostics.EventLog.SourceExists(System.String)
   at ArchivalPurgeService.ArchivalPurge..ctor()
   at ArchivalPurgeService.Program.Main()

这是我的计划:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;

namespace ArchivalPurgeService
{
    public partial class ArchivalPurge : ServiceBase
    {
        public ArchivalPurge()
        {
            try
            {
                InitializeComponent();
            }
            catch (Exception ex)
            {
            }
        }

        protected override void OnStart(string[] args)
        {
            try
            {
                timer2 = new Timer();
                timer2.Enabled = true;
                timer2.Interval = Convert.ToInt32(System.Configuration.ConfigurationSettings.AppSettings["RuntimeFrequency"]);
            }
            catch (Exception ex)
            {
            }
        }

        private Queue<Job> QueryDBForJobs()
        {   
            int i = 0;
            return new Queue<Job>();
        }

        protected override void OnStop()
        {

        }


        private void timer2_Elapsed(object sender, ElapsedEventArgs e)
        {
            QueryDBForJobs();
        }
    }
}

我尝试运行它,即使所有内容都被注释掉了,我也遇到了同样的问题。可能这只是安装问题吗?我使用的安装程序几乎完全基于MSDN创建Windows服务的方法创建。我显然也在每次代码更改后构建/卸载/重新安装。

1 个答案:

答案 0 :(得分:1)

显然问题在于安装,而不是代码。当我通过installutil安装时,一切正常。