我在C#中编写了一个小窗口服务,该服务应该侦听特定端口并对请求执行某些操作。
我也像这样写了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);
}
}
}
}
所以我可以用控制台启动服务而不用。当我以Console-Application启动程序时,它工作正常!
如果我使用“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,版本:1.0.0.0,Zeitstempel:0x5459e290 名称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:\用户*的用户名* \桌面\自动部署\ AutoDeployService \ BIN \调试\ AutoDeployService.exe Pfad des fehlerhaften Moduls:未知 Berichtskennung:5d636ccf-64cb-11e4-b5d1-0050568bc9b7
编辑:
如果我启动该服务,该服务似乎没有进入OnStart-Method,因为他没有创建文件夹。
答案 0 :(得分:1)
似乎有一些误解;虽然可以从命令行启动可执行文件,但是无法从命令行启动服务本身。此外,可以找到有关服务创建的教程here。
答案 1 :(得分:0)
感谢您的帮助。
我在使用此命令附加调试器时发现了错误:
Debugger.Launch().
我的应用程序出现了一个错误。