新建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模块详解
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.p ...
- echarts图片保存
一.js: function updateChart(versionList,rateList) { option = { title: { text: '拖动频次' }, tooltip : { t ...
- 学习memcache
本文参考了菜鸟教程中的内容. 安装 安装memcache的时候,请切换为root用户 root@centos # wget http://www.memcached.org/files/memcach ...
- Azure系列2.1.9 —— CloudBlob
(小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...
- mysql [assword expired
mysql 5.6 在使用Navicat在其他机器上进行远程登录数据库时 会出现 password expired ,需要重新设置一下密码. SET PASSWORD FOR 'root'@'%' = ...
- MyBaits全局配置文件的各项标签1
■dtd约束 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...
- JS学习笔记 等于和包装对象
严格等于 a===b 首先判断两边数据的类型,若类型不同,返回false. 若类型相同(1.2和1.2,字符串相等指内容和长度都是一样的),返回true null===null undefined== ...
- hive之size函数和cast转换函数
size返回map集合中元素的个数: cast函数将一种类型的数据转换成其他格式的数据
- 隐藏Nginx或Apache以及PHP的版本号的方法
当黑客入侵一台服务器时,首先会”踩点”, 这里的”踩点”,指的是了解服务器中运行的一些服务的详细情况,比如说:版本号,当黑客知道相应服务的版本号后,就可以寻找该服务相应版本的一些漏洞来入侵,攻击,所以 ...
- NIO服务器与客户端
这里客户端没有采用NIO形式 服务器: package com.util.Server.NIO; import javax.print.DocFlavor;import java.io.IOExcep ...