我用 C# 编写了一个小 Windows 服务,它应该侦听特定端口并根据请求执行某些操作。
我也这样写了Main:
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-Method 可能需要很长时间,现在我的 OnStart-Method 看起来像:
protected override void OnStart(string[] args)
{
base.OnStart(args);
var initializeThread = new Thread(new ThreadStart(Initialize));
initializeThread.Start();
}
所以我希望有人能帮助我。
问候
编辑:似乎服务在我用 servicemanager 启动他之后启动了,但是在 servicemanager 中出现了上面的错误并且它被定义为未启动。
事件簿:
Name der fehlerhaften Anwendung: AutoDeployService.exe, Version: 1.0.0.0, Zeitstempel: 0x5459e290 Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000 Ausnahmecode: 0x00000000 Fehleroffset: 0x0039010b ID des fehlerhaften Prozesses: 0xa0c Startzeit der fehlerhaften Anwendung : 0x01cff8d816b830d8 Pfad der fehlerhaften Anwendung: C:\Users* username* \Desktop\AutoDeploy\AutoDeployService\bin\Debug\AutoDeployService.exe Pfad des fehlerhaften 模块: 未知 Berichtskennung: 5d636ccf-64cb-11e4-b5d1-0050568bc9b7
编辑:
如果我启动服务,服务似乎没有进入 OnStart 方法,因为他没有创建文件夹。