zoukankan      html  css  js  c++  java
  • 使用C#创建windows服务程序

    创建windows服务项目

    一、创建服务

    1、文件-》新建-》项目-》windows桌面-》windows服务,修改你要的项目名称。我这不改名,仍叫WindowsService1,确定。

    2、其中的Program.cs文件是入口,Service1.cs是服务文件,所有的逻辑都在这。Service1.cs包含两部分,一部分是Designer,可以在这里面添加各种组件。一部分是后台文件,里面可以写一些逻辑,默认包含3个方法:构造函数、OnStart和OnStop,还可以添加OnPause和OnContinue方法。

    3、修改Service1.cs文件如下(可以自行添加一些逻辑代码)

    复制代码
    namespace WindowsService1
    {
        public partial class Service1 : ServiceBase
        {
            public Service1()
            {
                InitializeComponent();
                base.ServiceName = "KangryTest"; //设置服务名称,与后面的安装服务名称要一致 
            }
    
            protected override void OnStart(string[] args)
            {
                //服务启动时相关代码。
            }
    
            protected override void OnStop()
            {
                //服务关闭时相关代码。
            }
        }
    }
    复制代码

    4、双击Service1.cs文件,进入设计页面,对着空白处右键-》添加安装器。

    5、在安装器的设计界面,出现两个组件。点击serviceProcessInstaller1,在右下角的属性栏中,将Account修改为LocalSystem

    6、选中ServiceInstaller1,右下角的属性框中,将ServiceName修改成第3步的ServiceName,其他自行选择。DelayedAutoStart表示开机后是否延迟启动。Description表示服务的描述,DisplayName表示服务显示名称。ServicesDependedOn表示依赖的服务项。StartType表示启动类型,分为自动启动,手动启动和禁用。

    二、安装服务

    选中项目右键选择“生成”,生成exe文件;

    然后将从C:WindowsMicrosoft.NETFrameworkv4.0.30319中拷贝installutil.exe文件到生成目录(bin/Debug目的使installutil.exe和dp0WindowsService1.exe在同一级目录)下。在该目录新建“安装.bat”文件,使用记事本打开,输入如下命令:

    %~dp0InstallUtil.exe %~dp0WindowsService1.exe
    pause

    注意前每个命令前要加一个%~dp0,表示将目录更改为当前目录。倘若不加,可能会出错。pause 一定要换行,否则报错。

    最后双击安装.bat文件,就完成服务注册了。

    或者【首先,点“开始-运行-输入‘CMD’”,然后输入“cd C:WINDOWSMicrosoft.NETFrameworkv4.0.30319”切换到InstallUtil.exe的路径,
    其次,输入命令InstallUtil +WINDOWS服务的EXE绝对路径(这个可以通过将EXE拖动到COMMAND窗体里生成)
    最后,按回车,此时应该有成功提示。】

    在我的电脑上右键选择“管理”,打开“服务和应用程序”下的“服务”,就能看到我们注册的服务了。

    三、卸载服务

    在该目录新建“卸载.bat”文件,使用记事本打开,输入如下命令:

    %~dp0InstallUtil /u %~dp0WindowsService1.exe

    pause

    同样pause也要换行。

    如果在启动过程中遇到如下问题,请将整个项目加上EVERYONE权限。

    或者【InstallUtil.exe /u  F:DebugDateFDA5.exe】

    四、调试

    在VS2013中选择“调试”-“附加到进程”,如下:

    这样就可以调试了。

  • 相关阅读:
    kis 7.5和360似乎存在兼容性的问题,
    mysql timeout
    update users set a=1 where id in (1,2,3)这句在rails中该如何写呢
    mysql数据库 text类型的长度限制,使用change_column来进行长度的修改并不影响原有数据
    杭州的一个托管idc商
    User.find_each
    ruby 批量更新
    mongodb kt双机房灾备
    imagemagick使用
    kingdee kis
  • 原文地址:https://www.cnblogs.com/bit-by-bit/p/6908531.html
Copyright © 2011-2022 走看看