Can';t启动服务,错误1053,在Visual Studio中生成,c#

Can';t启动服务,错误1053,在Visual Studio中生成,c#,c#,windows,service,C#,Windows,Service,所以我做了一个小的服务项目,但它不会启动。 它自己安装,但我没有自动启动。 它在Windows7,64位系统上 当我在服务中找到它时,右键单击该服务并启动它,大约30秒后,它将超时并显示错误1053 我以发行版的形式运行程序,而不是调试。 尝试以本地管理员的身份安装,并以本地管理员的身份执行所有操作。 OnStart()和OnStop()方法是空的,没有代码,我将其全部删除以消除可能的内容。 尝试在OnStart()的开始处放置一个我知道有效的小日志操作(安装成功时我使用它创建日志文件),但它从

所以我做了一个小的服务项目,但它不会启动。 它自己安装,但我没有自动启动。 它在Windows7,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()
        {
        }
    }
}
看起来你找到了一个,但只找到了一半

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

static void Main()
{
    //Install self
    SelfInstaller.InstallMe();
}
因此,这不会让ServiceManager知道服务已经启动,因为它没有启动

您需要在
main()
中决定是启动、安装、卸载还是调试服务。通常使用命令行参数执行此操作,其中未提供参数意味着“启动服务”


该教程中也介绍了如何执行此操作。

您能提供您的代码吗?所以即使是空白服务也会失败?听起来很奇怪。。你能显示你所有的代码吗?编辑过的帖子。但是,是的,它是空的。还试图删除自安装程序,只是用InstallUtil.exe安装,同样的事情,但现在它会立即给出错误,而不是过一段时间。以前从未使用过服务,现在我觉得自己很愚蠢。谢谢没问题,一切都是第一次。当学习一项新技术时,阅读文档以熟悉核心原则确实很有帮助,而不是遵循一个没有太多解释就可以复制粘贴代码的教程。