net windows服务

2017-12-21 19:47:18来源:CSDN作者:qq_33660299人点击

分享

.net windows服务


  • net windows服务
    • 适用场景
    • 服务基本属性
    • 使用流程
      • 1建立项目按以下流程操作
      • 2项目代码
      • 3服务安装
      • 4服务调试
      • 5测试代码下载

适用场景

工作中遇到定时检测数据状态的问题可以使用服务

服务基本属性

属性 说明
Manual 服务安装后,必须手动启动
Automatic 每次计算机重新启动时,服务都会自动启动
Disabled 服务无法启动
Autolog 是否自动写入系统的日志文件
CanHandlePowerEvent 服务时候接受电源事件
CanPauseAndContinue 服务是否接受暂停或继续运行的请求
CanShutdown 服务是否在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程
CanStop 服务是否接受停止运行的请求
ServiceName 服务名

使用流程

1:建立项目,按以下流程操作

image_1c1pl69si1141muukeol0mevom.png-17.7kB

image_1c1rguqfdvqd1pu22mfvlk1slu9.png-17.1kB

image_1c1rh02fo1khi696r18s0q1aqqm.png-12.8kB
serviceProcessInstaller1 设置属性:Account ==> LocalSystem
serviceInstaller1 设置属性:StartType ==> Automatic DisplayName==> ServerTest

2:项目代码

 public partial class Service1 : ServiceBase{    //定时器       Timer timer = null;    public Service1()    {        InitializeComponent();        //启用暂停恢复 //服务默认不接受暂停          base.CanPauseAndContinue = true;        //一秒执行一次    }    //启动服务执行      protected override void OnStart(string[] args)    {        string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "启动";        WriteLog(state);        timer = new Timer(OnTimerHandler, null, 0, 1000);    }    //停止服务执行   会终止timer的操作     protected override void OnStop()    {        string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "停止";       WriteLog(state);    }    //恢复服务执行      protected override void OnContinue()    {        string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "继续";       WriteLog(state);    }    //暂停服务执行   并不会终止timer的操作  可以在函数内终止    protected override void OnPause()    {        string state = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "暂停";        WriteLog(state);    }    public void WriteLog(string str)    {        if (string.IsNullOrEmpty(str))        {            return;        }        FileStream fileStream = null;        StreamWriter streamWriter = null;        try        {            string path = @"D:/TEST.txt";            using (fileStream = new FileStream(path, FileMode.Append, FileAccess.Write))            {                using (streamWriter = new StreamWriter(fileStream))                {                    streamWriter.WriteLine(str);                    streamWriter.Flush();                    if (streamWriter != null)                    {                        streamWriter.Close();                    }                }                if (fileStream != null)                {                    fileStream.Close();                }            }        }        catch { }    }    public void OnTimerHandler(object state)    {        WriteLog("OnTimerHandler:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));    }}

3:服务安装

1:重新生成项目(Debug /Any Cpu模式)

2:找到InstallUtils:C:/Windows/Microsoft.NET/Framework64/v4.0.30319(默认路径)放到项目的Debug文件夹下
3:在当前文件夹下执行命令创建并开始服务

InstallUtil.exe WindowsServiceTest.exeNet Start ServiceTestsc config ServiceTest start= auto

4:停止服务并删除服务

InstallUtil.exe /u WindowsServiceTest.exesc delete ServiceTest.exe

4:服务调试

image_1c1s2brfi1v5sgg713k93bmcvb9.png-127.3kB

5:测试代码下载

http://download.csdn.net/download/qq_33660299/10168013

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台