C#Windows服务未显示为已启动

C#Windows服务未显示为已启动,c#,windows,service,onstart,C#,Windows,Service,Onstart,我用C#编写了一个小的windows服务,它应该监听特定端口并处理请求 我还写了这样的主要内容: using System; using System.ServiceProcess; namespace AutoDeployService { public static class WindowsServiceController { private static void Main(string[] args) { Se

我用C#编写了一个小的windows服务,它应该监听特定端口并处理请求

我还写了这样的主要内容:

using System;
using System.ServiceProcess;

namespace AutoDeployService
{
    public static class WindowsServiceController
    {
        private static void Main(string[] args)
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new AutoDeployService() 
            };

            if (Environment.UserInteractive)
            {
                new AutoDeployService().ConsoleRun();
            }
            else
            {
                System.Diagnostics.Debugger.Break();
                ServiceBase.Run(ServicesToRun);
            }
        }
    }
}
因此,我可以启动有控制台和无控制台的服务。当我作为控制台应用程序启动程序时,它工作正常

如果我使用“InstallUtil.exe”安装服务,它将安装完美,并显示在服务列表中。但当我尝试启动服务时,大约半分钟或更长时间后,它会给我以下消息:

服务未及时响应启动或控制请求

在我研究了www中的这个错误后,我发现OnStart方法可能需要很多时间,现在我的OnStart方法看起来像:

        protected override void OnStart(string[] args)
        {
            base.OnStart(args);
            var initializeThread = new Thread(new ThreadStart(Initialize));
            initializeThread.Start();
        }
所以我希望任何人都能帮助我

问候

编辑: 似乎服务是在我用servicemanager启动他之后启动的,但在servicemanager中出现上述错误,其定义为未启动

事件日志:

名称der fehlerhaften Anwendung:AutoDeployService.exe,版本:1.0.0.0,Zeitstempel:0x5459e290 名称des fehlerhaften modules:未知,版本:0.0.0.0,Zeitstempel:0x00000000 Ausnahmecode:0x00000000 Fehleroffset:0x0039010b fehlerhaften项目ID:0xa0c 安文东机场的起点:0x01cff8d816b830d8 法赫勒霍夫滕·安文东总统府: C:\Users*username*\Desktop\AutoDeploy\AutoDeployService\bin\Debug\AutoDeployService.exe Pfad des fehlerhaften模块:未知 Berichtskenung:5d636ccf-64cb-11e4-b5d1-0050568bc9b7

编辑:


如果我启动服务,服务似乎不会进入OnStart方法,因为他不会创建文件夹。

似乎有一些误解;尽管可执行文件可以从命令行启动,但服务本身不能从命令行启动。此外,还可以找到有关服务创建的教程。

谢谢您的帮助

我通过以下命令附加调试器找到了我的erorr:

Debugger.Launch().

应用程序的线程中出现错误。

请检查Windows事件日志中的应用程序。还要注意的是,如果(debugger.IsAttached)System.Diagnostics.debugger.Break(),则最好检查调试器是否已附加
if(debugger.IsAttached)@Silvermind感谢您的快速重播。事件日志中的消息没有多大帮助。请看我文章中的编辑。是的,对不起,这就是我的意思,如果我从控制台启动可执行文件,它工作正常。因此,错误一定与服务有关。谢谢你的回复。我看了这个教程,但它对我帮助不大。我的服务似乎是正确的。