我有一个应用程序,主要类覆盖了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");
}
}
}
main()
例程。而VB则保持了一个虚构,即您可以拥有一个“启动对象”(一个表单),而不是编写一个Main
。 - Damien_The_Unbeliever