新建WINDOWS服务C#
当前作业环境 Windows8.1 | Visual Studio 2013
一. 建立项目,选择"Windows服务"模板
二. 查看生成的项目,结构很像WinForm的项目,其中Program.cs是程序入口,Service1.cs是服务类.
Service1.cs,按F7从设计视图转到代码,服务类继承自服务基类,构造函数有初始化动作,这和Winform项目一样.
OnStart() 服务开启时执行 OnStop()服务停止时执行,
OnStart()方法里写了记录服务启动日志,和干活代码.
OnStop()方法里记录服务停止日志,关闭干活代码开的线程,资源等如果有的话
还有一些重写方法,如OnShutdown()系统关闭时执行,写了一个关机日志
三. 服务代码写好后,做个配置安装,
1.切换到服务的设计视图->右击->添加安装程序
2.在安装程序视图上,选serviceInstall1->右击->属性.查看属性项,
Description:服务的说明,设置后将会在"服务管理界面"点击一个服务后看到该说明文字
DisplayName:向用户展示的服务名
ServiceName:服务的名字,用于系统标识
StartType:启动方式自动,手动等,可在"服务管理界面"选择的启动方式
3.在安装程序视图上,选serviceProcessInstaller1->右击->属性.查看属性项
设置启动服务的账户,这里选本地系统
四. 安装服务到系统中.
1.使用安装工具InstallUtil.exe
使用命令行工具(需要以管理员身份运行),地址是C:\Windows\Microsoft.NET\Framework64\v4.0.30319>installutil,
命令格式
installutil 要安装的服务路径加名字
installutil -u 要安装的服务 加上-u参数这是卸载服务
2.运行命令之后,服务安装好了,弹出一个界面,说明安装过程和日志查看的地方,一般在服务程序所在目录记有日志.
3.打开服务管理界面,会找到刚才安装的服务,和其它服务一样,右击属性,可以设置自动,手动.可以启动,停止等操作.
新建WINDOWS服务C#的更多相关文章
- Windows服务一:新建Windows服务、安装、卸载服务
Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面 ...
- C#创建、安装、卸载、调试Windows Service(Windows 服务)的简单教程
前言:Microsoft Windows 服务能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面.这 ...
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
什么是windows服务? 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就 ...
- 使用windows服务更新站点地图
由于公司平台访问人数逐渐增多,公司项目的数据库已经几次出现宕机现象.为减轻数据库压力,我上个月对公司项目做了下调整.把新闻板块提取出来单独一个站点,单独一个数据库.减少了主站点和数据库的负担和压力. ...
- Windows服务中用Timer和线程两种方式来执行定时任务
在Service服务文件夹下新建Windows服务 - TestService
- vs2015开发Windows服务
工作已经很久,时隔这么长时间写这篇文章是给自己以后做参考.也不至于以后长时间不写Windows服务而忘记整个开发过程.windows服务开发,基础的就不说了,直接上过程. 1.新建windows服务项 ...
- 基于Windows服务的聊天程序(一)
本文将演示怎么通过C#开发部署一个Windows服务,该服务提供各客户端的信息通讯,适用于局域网.采用TCP协议,单一服务器连接模式为一对多:多台服务器的情况下,当客户端连接数超过预设值时可自动进行负 ...
- 创建、设置和安装Windows服务
文章大部分内容转自:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html:和:http://www.cnblog ...
- 初识Windows服务 C#
1.新建Windows服务 2.切换到代码视图,拷入如下代码 该服务以10S的间隔创建 d:/1.txt 文件 using System; using System.Collections.Gen ...
随机推荐
- vue router 根据不同的id切换链接界面不刷新
我们一般使用vue的router时候会根据不同的id来切换界面,但是界面没有立刻刷新.下面我们讲下如何解决这个问题. html: <template> <div id="a ...
- 简单易懂的softmax交叉熵损失函数求导
参考: https://blog.csdn.net/qian99/article/details/78046329
- Java内存泄漏分析
https://www.javatang.com/archives/2017/11/08/11582145.html?tdsourcetag=s_pcqq_aiomsg
- mysql对身份证号码进行脱敏处理
select * from test 格式:INSERT(str,pos,len,newstr) 解释: str:查询的例 pos:起始位置 len:从起始位置开始被后面newstr替换的长度 new ...
- JQ获取URL中是否含有某个字符的话,对页面进行某种操作
一.//JQ获取URL中是否含有某个字符的话,对页面进行某种操作 例:如果URL中含有xia的字符,就在页面引入一个cssvar str=window.location.href; //获取地址栏UR ...
- ECharts在柱状图的柱子上方显示数量的方法
在setOption()方法中的series配置中加上itemStyle配置 如下: series: [{ name: '人数', type: 'bar', data: [], //x轴对应列的值 i ...
- SSH本地端口转发的理解
ssh -L 3307:127.0.0.1:3306 user@ssh-server -N 其中127.0.0.1:3306是指 ssh-server要访问资源的ip和端口 而3307则是隧道的开口, ...
- mysql运行sql文件出错
从服务器上备份表数据到本地,使用的工具是Navicat,右键表转储sql文件,但是在本地运行sql文件时一直报异常 [Err] 1064 - You have an error in your SQL ...
- codeforces611C
New Year and Domino CodeForces - 611C 他们说:“每一年都像多米诺骨牌,一个接一个地倒下去”.但是,一年能够像多米诺骨牌那样放在网格中吗?我不这么认为. Zydsg ...
- Nginx log_format
L11 nginx 官网的日志格式如下 log_format compression(自定义名称) '$remote_addr - $remote_user [$time_local] ' '&quo ...