首先我们创建一个控制台应用程序WriteLog,然后添加windows服务LogService

新增的windows服务切换到代码视图,我这边用log4net进行的日志的记录

OnStart方式是服务启动后执行的,OnStop是服务停止后执行的方法。

切换到设计页面,右击添加安装程序

修改serviceInstaller1的属性

  1. StartType属性值设置为Automatic,这样计算机重新启动时,服务会自动启动。
  2. Description属性是服务的描述。
  3. Display属性是服务名称。

修改serviceProcessInstaller1属性

LocalSystem表示本地系统管理员身份

控制台启动项Program类中运行服务

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

以管理员身份运行以下程序:

切换到cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319(或者C:\Windows\Microsoft.NET\Framework\v2.0.50727)
安装服务:installutil ***(程序路径)

OK,服务添加成功。cmd输入services.msc查看服务

我们启动服务,查看日志是否记录成功。

日志记录成功,服务添加完成。

卸载服务:installutil /u ***(程序路径)

作者:高调的小丑
链接:https://www.jianshu.com/p/2a5410c5bbb1

控制台程序转化为windows服务的更多相关文章

  1. 控制台程序秒变Windows服务(Topshelf)

    项目中有些时候需要写服务,一般我们都是先创建控制台程序,测试,运行,成功之后再创建windows服务程序,这样好麻烦啊,有没有简单的控制台程序直接变成Widnows服务,经过查找,找到了Topshel ...

  2. 如何将控制台程序包装成windows服务

    1. 新建一个项目,或者从选择当前解决方案--右键-添加--新建项目 2. 选择(项目类型)Visual C#项目,(模板)Windows 服务,填写要创建的服务名称(修改默认的WindowServi ...

  3. Qt5+MSVC2015环境将VS2015编写的控制台程序转化为GUI程序

    如题所述,如何将VS2015编写的控制台程序转化为Qt5+MSVC2015环境编译的GUI程序? 最近想到这个操作,类似于Linux下使用的命令行操作转到Windows下使用GUI操作,看了控制台的命 ...

  4. 将一个应用程序添加做成windows服务

    需求来源: 在服务器端运行的一个应用程序,为完成客户端路径分析等功能: 此应用程序只需要运行着就可以,没有界面等要求: 因此,考虑把此应用程序添加到服务器端电脑管理的服务中,可以启动和停止. 这里添加 ...

  5. 使用instsrv.exe+srvany.exe将应用程序安装为windows服务[转]

      转自:http://qingmu.blog.51cto.com/4571483/1248649 一.什么是instsrv.exe和srvany.exe instsrv.exe.exe和srvany ...

  6. 使用wrapper将java程序注册程windows服务后不生效

    使用wrapper将java程序注册程windows服务后不生效 使用add.bat或test***.bat测试通过了, 然后使用install***.bat注册后cmd显示注册成功. 但是程序到了运 ...

  7. C#判断程序是由Windows服务启动还是用户启动

    在Windows系统做网络开发,很多时候都是使用Windows服务的模式,但在调度阶段,我们更多的是使用控制台的模式.在开发程序的时候,我们在Program的Main入口进行判断.最初开始使用Envi ...

  8. 使用srvany.exe把程序安装成windows服务的方法

    http://mazhihui.iteye.com/blog/1294431 srvany.exe是什么? srvany.exe是Microsoft Windows Resource Kits工具集的 ...

  9. 使用srvany.exe将程序安装成windows服务的详细教程

    srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...

随机推荐

  1. 搭建自己的博客(二十二):通过ajax提交评论信息,并增加公式编辑功能

    编辑功能使用到了ckeditor的MathJax组件.ajax提交评论可以不用刷新浏览器. 1.变化的部分

  2. Luogu2791 幼儿园篮球题【斯特林数,数学】

    题目链接:洛谷 我一开始不知道$N,M$有什么用处,懵逼了一会儿,结果才发现是输入数据范围... $$\begin{aligned}\binom{n}{k}Ans&=\sum_{i=0}^k\ ...

  3. PHP全栈学习笔记28

    数据库Mysql概述,数据库操作,数据表操作,数据类型,管理数据库 order by asc; 升序 desc 降序 sql标准语言: 数据查询语言 select 数据定义语言 create/alte ...

  4. 【原创】导出aws ec2为csv

    1.安装 pip  install boto3 csv 2.使用脚本更新秘钥和地区 # 导出aws ec2列表为cvs import boto3 import csv   ec2 = boto3.cl ...

  5. 使用AwesomeWM作为Mate(Gnome相同) Desktop的窗口管理器

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/using_awesomewm_as_wm_of_mate_des ...

  6. P1986 元旦晚会——贪心或差分约束系统

    P1986 元旦晚会 每个人可能属于不同的声部,每个声部最少要有c[i]个人发声: 求最少需要多少话筒: 首先贪心,将所有声部的区间按照右端点大小排序,如果右端点相同,左端点从小到大排序: 贪心每次选 ...

  7. Django基础之创建admin账号

    1. 首先我们要新建一个用户名, 用来登录管理网站,可以使用如下命令: python manage.py createsuperuser 2. 输入想要使用的用户名: Username(leave b ...

  8. 判断声明出来的list为空的时候,list!=null

    判断声明出来的list为空的时候,listjcxm!=null&&listjcxm.size()==0: 有时候list不为null但是size为0 map也是类似

  9. GO make&new区别

    自:http://www.cnblogs.com/ghj1976/archive/2013/02/12/2910384.html 1.make用于内建类型(map.slice 和channel)的内存 ...

  10. ip6tables命令

    ip6tables命令和iptables一样,都是linux中防火墙软件,不同的是ip6tables采用的TCP/ip协议为IPv6. 语法 ip6tables(选项) 选项 -t<表>: ...