【发布时间】:2014-11-16 08:42:24
【问题描述】:
我在控制台应用程序中实现了 Windows 服务,如下所示:
internal class Program
{
private static void Main(string[] args)
{
ServiceBase.Run(new MyServicesInitializer()); //host the services in managed windows service
//some more code
string x=1;
.....
}
public class MyServicesInitializer : ServiceBase
{
protected override void OnStart(string[] args)
{
//my code
}
}
我的问题是:当我用 sc.exe 启动服务时,会调用 main 方法吗?似乎不是......如果有人可以解释当我使用 sc 启动服务时发生的情况以及我需要该行的原因:ServiceBase.Run(new MyServicesInitializer()); in我的主线?
编辑:我在main中的行之前和之后做了实验并抛出异常:当我在抛出异常之前抛出异常但是当我将异常放在run方法之后时它不会抛出并且服务启动成功...谁能解释一下为什么Run方法后面的代码没有执行?
【问题讨论】:
标签: c# windows-services