C#编写Windows服务实例代码

   2015-10-20 0
核心提示:本篇文章主要介绍使用Microsoft Visual Studio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务
Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。

使用Microsoft Visual Studio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务。

新建一个Windows Services工程:

C#编写Windows服务实例代码 

工程创建好之后,默认会有一个Services1.cs文件,删掉此文件,重新添加一个新Item

C#编写Windows服务实例代码

右击新添加的这个文件,选择View code,可以看到,有两个函数 on Start和on Stop,on Start函数在启动服务时执行,on Stop函数在停止服务时执行。

这两个函数的代码如下:

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace MyFirstWindowsService
{
    partial class MyWindowsService : ServiceBase
    {
        public MyWindowsService()
        {
            InitializeComponent();
        }

        protected override void on Start(string[] args)
        {
            // TODO: Add code here to start your service.
            FileStream fileStream = new FileStream(@"D:\MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter streamWriter = new StreamWriter(fileStream);

            streamWriter.BaseStream.Seek(0, SeekOrigin.End);

            streamWriter.WriteLine("My service started" + DateTime.Now.ToString() + "\n");

            streamWriter.Flush();

            streamWriter.Close();

            fileStream.Close();
        }

        protected override void on Stop()
        {
            // TODO: Add code here to perform any tear-down necessary to stop your service.
            FileStream fileStream = new FileStream(@"D:\MyWindowsService.txt", FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter streamWriter = new StreamWriter(fileStream);

            streamWriter.BaseStream.Seek(0, SeekOrigin.End);

            streamWriter.WriteLine("My service stopped " + DateTime.Now.ToString() + "\n");

            streamWriter.Flush();

            streamWriter.Close();

            fileStream.Close();
        }
    }
}

之后需要新建一个安装组件MyWindowsServiceProjectInstaller(右击MyWindowsService.cs这个文件选择view desiner,然后选择Add Installer),需要将MyFirstWindowsServiceProcessInstaller的account属性设置为localservice.

C#编写Windows服务实例代码

C#编写Windows服务实例代码

编写批处理文件:

 安装服务批处理:

复制代码 代码如下:

 %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe C:\Users\gaoja1\Desktop\MyWindowsService\MyFirstWindowsService\bin\Debug\MyFirstWindowsService.exe
 Net Start ServiceTest
 sc config ServiceTest start= auto

卸载服务批处理:

复制代码 代码如下:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u C:\Users\gaoja1\Desktop\MyWindowsService\MyFirstWindowsService\bin\Debug\MyFirstWindowsService.exe

服务安装好之后:


C#编写Windows服务实例代码


服务启动之后可以在D盘看到一个txt的文件,里面记录了服务的启动时间.
 
标签: C# Windows服务
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

点击排行