【发布时间】:2017-03-28 10:21:50
【问题描述】:
我有一个带有一个主类的应用程序它覆盖 ServiceBase 方法并具有 Main() 静态方法。 我想在命令行调用时使用 Main() 方法,从 Windows 服务管理调用时使用 OnStart()/OnStop()。
我使用 installutils 成功安装了这个应用程序作为服务,但是当我启动它时,调用的是 Main() 方法而不是预期的 OnStart()。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Xml.Serialization;
using System.Runtime.Serialization.Json;
using System.Threading;
using System.ServiceProcess;
using System.Configuration.Install;
using System.Reflection;
namespace Test
{
class Program : ServiceBase
{
static void Main(string[] args)
{
log.Error("Run as App");
}
protected override void OnStart(string[] args)
{
log.Info("Starting service");
}
protected override void OnStop()
{
log.Info("Stopping service");
}
}
}
【问题讨论】:
标签: c# service windows-services