• C# 创建Windows Service


    当我们需要一个程序长期运行,但是不需要界面显示时可以考虑使用Windows Service来实现。这篇博客将简单介绍一下如何创建一个Windows Service,安装/卸载Windows Service。

    新建Windows Service项目:

    删除自动生成的Service1.cs文件,新建WindowsService类,继承ServiceBase。

    复制代码
        class WindowsService : ServiceBase
        {
            public WindowsService()
            {
                this.ServiceName = "Test Windows Service";
                this.EventLog.Log = "Application";
    
                this.CanHandlePowerEvent = true;
                this.CanHandleSessionChangeEvent = true;
                this.CanPauseAndContinue = true;
                this.CanShutdown = true;
                this.CanStop = true;
            }
    
            #region
            // 可以把需求实现代码放置在重写方法内
            protected override void Dispose(bool disposing)
            {
                base.Dispose(disposing);
            }
    
            protected override void OnStart(string[] args)
            {
                base.OnStart(args);
            }
    
            protected override void OnStop()
            {
                base.OnStop();
            }
    
            protected override void OnPause()
            {
                base.OnPause();
            }
    
            protected override void OnContinue()
            {
                base.OnContinue();
            }
    
            protected override void OnShutdown()
            {
                base.OnShutdown();
            }
    
            protected override void OnCustomCommand(int command)
            {
                base.OnCustomCommand(command);
            }
    
            protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
            {
                return base.OnPowerEvent(powerStatus);
            }
    
            protected override void OnSessionChange(SessionChangeDescription changeDescription)
            {
                base.OnSessionChange(changeDescription);
            }
            #endregion
        }
    复制代码

    新建WindowsServiceInstaller类,添加System.Configuration.Install引用,

    复制代码
        [RunInstaller(true)]
        class WindowsServiceInstaller : Installer
        {
            public WindowsServiceInstaller()
            {
                ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
                ServiceInstaller serviceInstaller = new ServiceInstaller();
    
                serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
                serviceProcessInstaller.Username = null;
                serviceProcessInstaller.Password = null;
    
                serviceInstaller.DisplayName = "CSharp Windows Service";
                serviceInstaller.StartType = ServiceStartMode.Automatic;
    
                serviceInstaller.ServiceName = "Windows Service";
    
                this.Installers.Add(serviceProcessInstaller);
                this.Installers.Add(serviceInstaller);
            }
        }
    复制代码

    编译项目,此时编译完的CSWindowsService.exe运行后提示:

    我们需要通过installutil.exe来部署Windows Service。

    以管理员身份运行Developer Command Prompt。部署命令:installutil /i 文件路径

    例如:installutil /i D:CSWindowsService.exe

    卸载命令 installutil /u 文件路径。

    到这里,一个简单的Windows Serive就讲完了。

    关于Windows Service更多的内容,请参考MSDN文档。

    感谢您的阅读,代码点击这里下载。

  • 相关阅读:
    网络基础相关知识内容
    json模块的转义dump 和反转义 loap
    常用模块--time,sys,os,json
    正则表达式
    day_24 模块和包
    day23_内置函数(__del__ item系列 ,模块)
    LuoguP3806 【模板】点分治1 (点分治)
    BZOJ1305/Luogu3153 [CQOI2009]dance跳舞 (network flow)
    LuoguP2217 [HAOI2007]分割矩阵 (DP + memorized search)
    BZOJ3224/LuoguP3369 普通平衡树 (splay)
  • 原文地址:https://www.cnblogs.com/wangchaoyuana/p/7523391.html
Copyright © 2020-2023  润新知