无法启动服务,错误1053,在Visual Studio中生成,c#

时间:2016-04-07 09:08:15

标签: c# windows service

所以我做了一个小型服务计划,但它不会启动。 它自己安装,但我没有在自动启动。 它位于Windows 7,64位系统上。

当我在“服务”中找到它时,右键单击该服务并启动它,大约30秒后它将超时错误1053.

我正在运行程序作为发布,而不是调试。 试图安装为本地管理员,并作为本地管理员做一切。 OnStart()和OnStop()方法是空的,没有代码,我删除它以消除它可能是什么。 尝试在OnStart()的开头放置一个我知道可以工作的小日志记录操作(我在安装成功时使用它来创建日志文件),但它从未到达它。

帮助?

编辑:

这是我的Program.cs代码:

namespace TestService
{
    static class Program
    {
        // The main entry point for the application.
        static void Main()
        {
            //Install self
            SelfInstaller.InstallMe();
        }
    }
}

这是我的Library.cs:

namespace TestService
{
    //Library to store public methods
    public static class Library
    {
        //Method to write to a logfile
        public static void WriteLogFile(string Message)
        {
            StreamWriter sw = null;
            try
            {
                sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\Logfile.txt", true);
                sw.WriteLine(DateTime.Now.ToString() + ": " + Message.ToString());
                sw.Flush();
                sw.Close();
            }
            catch
            {
                //empty
            }
        }
    }
}

这是我的Service1.cs:

namespace TestService
{
    public partial class Service1 : ServiceBase
    {

        //Initialize
        public Service1()
        {
            InitializeComponent();
        }

        //On service start
        protected override void OnStart(string[] args)
        {
        }

        //On service stop
        protected override void OnStop()
        {
        }
    }
}

1 个答案:

答案 0 :(得分:0)

好像你发现了一个tutorial,但只有一半了。

每次尝试启动时,您当前的main()代码都会安装该服务:

static void Main()
{
    //Install self
    SelfInstaller.InstallMe();
}

因此,不会让ServiceManager知道服务已经启动 - 因为它不是。

您需要在main()中决定是否要启动,安装,卸载或调试服务。使用命令行参数这是很常见的,其中没有提供的参数意味着“启动服务”。

如何执行此操作也会在该教程中显示。