新建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 ...
随机推荐
- Python_迭代器、生成器、列表推导式,生成器表达式
1.迭代器 (1)可迭代对象 s1 = ' for i in s1: print(i) 可迭代对象 示例结果: D:\Python36\python.exe "E:/Python/课堂视频/ ...
- Mysql drop function xxxx ERROR 1305 (42000): FUNCTION (UDF) xxxx does not exist
mysql> drop function GetEmployeeInformationByID;ERROR 1305 (42000): FUNCTION (UDF) GetEmployeeInf ...
- 日志分析工具之goAccess
在此推荐一款分析日志的工具,方便我们日常对于网站的访问状况有一个较为清晰的了解 一.安装 官网: https://goaccess.io/download 源码安装: 1. wget http:// ...
- ios点击输入框,界面放大解决方案
当我们编写的input宽度没有占满屏幕宽度,而且又没有申明meta,就会出现点击输入框,界面放大这个问题. 下面我直接给出解决方案: <meta name="viewport" ...
- js去除数组重复成员
js去除数组重复成员 第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中 用到两个函数:for ...in 和 indexOf() ...
- 理解npm、nvm、nodejs之间的关系
nvm nvm:nodeJs版本管理工具,管理nodejs版本和npm版本,使用nvm安装nodejs时会将npm一起安装下来 nodejs nodeJs: 一种高效的JavaScript运行环境 n ...
- Jquery ajax传递xml方式在ie8下兼容问题
主要问题就是ie8把xml格式在打开的时候转换成了string,我们只用把其转换回xml就可以了. $.ajax({ type:’GET’, url:’list.php?pagenow=’+count ...
- js中获取当前项目名等
实际上通过window.location可以获取很多跟资源路径相关的信息,需要用到的时候直接通过浏览器调试可以查看window.location的一些属性
- socket基础编程-1
server端和client端 1.server端: import socket server=socket.socket() server.bind(('localhost',8080)) serv ...
- mysql从入门到精通
解决MySQL Got a packet bigger than 'max_allowed_packet' bytes 问题在一次性向mysql插入的数据过大,可在my.ini中修改max_allow ...