2014-11-05 64 views
1

我在C#中编写了一个小窗口服务,它应该侦听特定的端口,并对请求执行某些操作。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 Moduls:未知,版本:0.0.0.0,Zeitstempel:00000000 Ausnahmecode:00000000 Fehleroffset:0x0039010b ID DES fehlerhaften Prozesses:0xa0c Startzeit DER fehlerhaften Anwendung:0x01cff8d816b830d8 PFAD DER fehlerhaften Anwendung: C:\用户* 用户名* \桌面\自动部署\ AutoDeployService \ BIN \调试\ AutoDeployService.exe 个PFAD DES fehlerhaften Moduls:未知 Berichtskennung:5d636ccf-64cb-11e4-b5d1-0050568bc9b7

编辑:

如果我启动该服务,该服务犯规似乎进入的OnStart法,因为他不创建一个文件夹。

+0

检查Windows事件日志中的应用程序。另外请注意,最好检查一下调试器是否附加了如果(Debugger.IsAttached)System.Diagnostics.Debugger.Break();' – Silvermind 2014-11-05 09:05:36

+0

@Silvermind 感谢您的快速回放。 Eventlog中的消息没有多大帮助。请参阅我的文章中的编辑。 – Marius 2014-11-05 09:11:32

回答

0

谢谢你的帮助。

我发现我的erorr与此命令附加调试:

Debugger.Launch(). 

错误是从我的应用程序线程。

1

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

+0

是的,对不起,这就是我的话,如果我从控制台启动可执行文件,它工作正常。所以错误必须与服务有关。 谢谢你的回应。我看了这篇教程,但它对我非常有帮助。我的服务似乎是正确的。 – Marius 2014-11-05 09:17:07