C#Windows服务未显示为已启动
我用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
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感谢您的快速重播。事件日志中的消息没有多大帮助。请看我文章中的编辑。是的,对不起,这就是我的意思,如果我从控制台启动可执行文件,它工作正常。因此,错误一定与服务有关。谢谢你的回复。我看了这个教程,但它对我帮助不大。我的服务似乎是正确的。