Create and Control Windows Services--Not a Slap Shot, but Almost as Fast[等級:進階]

來源:互聯網
上載者:User
services|window|進階 Not a Slap Shot, but Almost as Fast
Creating the service using .NET is fairly straightforward. You use the .NET Framework's System.ServiceProcess namespace and four classes within it: ServiceBase, ServiceInstaller, ServiceProcessInstaller, and ServiceController. These classes provide most of the functionality you need to create a service (see Figure 1).

   
Figure 1 | Everything You Need in One Namespace. Click here.


The ServiceBase class defines methods a derived class can override so the Service Control Manager can control a service—including OnStart(), OnStop(), OnPause(), and OnContinue(). Furthermore, a service can override the OnCustomCommand() function to carry out specific operations sent to it programmatically by an external service controller (more on this later). Implementing these functions in your derived class gives you the necessary structure of a service:

protected override void OnStart(string[] args)
{
}
protected override void OnStop()
{
}
protected override void OnPause()
{
}
protected override void OnContinue()
{
}
Allow your service to begin execution by defining an entry point into your executable, as you would with a regular executable. Within the Main() function, create an instance of your class and call the Run() method defined by the ServiceBase base class. If you want your executable to support multiple services, create an array of ServiceBase objects with each element corresponding to one of your defined services:

static void Main()
{
System.ServiceProcess.ServiceBase[] MyServices;

MyServices = new System.ServiceProcess.ServiceBase[] { new Service1, new Service2() };

System.ServiceProcess.ServiceBase.Run(MyServices);
}
Note that Run() does not start your service. In other words, you won't receive an OnStart() call from the Run() method itself. As I mentioned before, the Service Control Manager controls the service by calling the necessary controlling functions.


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.