C#控制台程序注册成Windows服务

在控制台程序中新增项目——>“Windows服务”

C#控制台程序注册成Windows服务_第1张图片

修改名称,我这里叫“Test_WindowsService”

然后在新增的“Windows服务”中按F7修改代码

C#控制台程序注册成Windows服务_第2张图片

将原本控制台入口中的代码全部剪切到该OnStart()方法中,该方法会在启动该服务时运行

 C#控制台程序注册成Windows服务_第3张图片

然后在原本的控制台入口程序中添加如下代码:

        static void Main(string[] args)
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new Test_WindowsService() //这里的Test_WindowsService新增的Windows服务
			};
            ServiceBase.Run(ServicesToRun);
        }

 然后在新增的Windows服务中右键添加安装程序

C#控制台程序注册成Windows服务_第4张图片

 在新增的安装程序中会有“serviceProcessInstaller1”和“serviceInstaller1”,修改serviceProcessInstaller1中的Account属性为“LocalSystem”(系统服务级别),根据需求修改serviceInstaller1里面的名称和描述属性:

C#控制台程序注册成Windows服务_第5张图片

 C#控制台程序注册成Windows服务_第6张图片

 然后右击生成一下,再去到“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录下面找到“Installutil.exe”,将此程序复制到项目生成的Debug目录下,在该目录下创建并修改两个txt文件(setup.txt/unsetup.txt),一个为“installutil 这是你的控制台程序名称.exe”,另一个为“installutil 这是你的控制台程序名称.exe /u”,然后修改这两个txt文件后缀为bat文件,双击setup.bat即可安装服务,在Windows服务中可以启动你的服务,双击unsetup.bat即卸载服务。

C#控制台程序注册成Windows服务_第7张图片

 如果遇到如下问题:

安裝階段中發生例外狀況。
System.Security.SecurityException: 找不到來源,但無法搜尋部分或全部的事件記錄檔。無法存取的記錄檔: Security, State。

解决方法:

开始程序中搜索cmd,然后右击,管理员身份运行,切换到该Debug目录下,再执行setup.bat即可安装成功。

 

你可能感兴趣的:(C#,c#,开发语言)