Tob*_*bia 3 c# service windows-services
我有一个主类的应用程序它覆盖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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
Dam*_*ver 10
Windows服务有一个罪恶的秘密.他们以普通的旧控制台应用程序开始他们的生 只有在他们开始运行并向服务控制经理注册后,他们才会转变为服务.
因此,是的,这是正确的,Main因为在那一点上,它只是一个控制台应用程序.
服务向服务控制管理器注册并成为服务的方式是通过ServiceBase.Run()从您的Main方法(或它调用的方法)调用来处理的
| 归档时间: |
|
| 查看次数: |
2354 次 |
| 最近记录: |