自定义Windows服务并实施安装
1、新建项目DemoService,并添加windows服务,命名DemoService
2、添加代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Configuration;
using System.Windows.Forms;
using System.Threading; namespace DemoService
{
public partial class DemoService : ServiceBase
{
private System.Timers.Timer timer1;
public DemoService()
{
InitializeComponent();
this.timer1 = new System.Timers.Timer();
this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
} protected override void OnStart(string[] args)
{
System.Threading.Thread.Sleep();
LogUtil.WriteLog(" 服务开始启动");
this.timer1.Interval = * Convert.ToInt32(ConfigurationManager.AppSettings["TimeSpan"]);
this.timer1.Enabled = true;
//this.timer1.Start();
LogUtil.WriteLog(" 服务启动完成");
} protected override void OnStop()
{
LogUtil.WriteLog(" 服务正在停止");
this.timer1.Stop();
this.timer1.Enabled = false;
LogUtil.WriteLog(" 服务已经停止");
} private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
LogUtil.WriteLog(" 服务测试运行中...");
Thread.Sleep();
MonitorService.ShouldRestart = true;
}
}
}
3、添加安装类,并配置如下:
4、配置App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!--重启超时时间 单位:秒-->
<add key="RestartTimeOut" value="3600"/>
<!--执行时间间隔 单位:秒-->
<add key="TimeSpan" value="5"/>
<add key="LogPath" value="c:\\ProjectService\\LOG\\"/>
</appSettings>
</configuration>
5、LogUtil.cs
public class LogUtil
{
public static void WriteLog(string error)
{
string fileName = DateTime.Now.ToString("yyyy-MM-dd") + "DomainServiceLog.txt";
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(ConfigurationManager.AppSettings["LogPath"] + fileName, true))
{
sw.WriteLine("---------------------------------------------------------");
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + error);
}
} }
6、生成项目,执行如下脚本安装服务:
@echo off
set path=C:\Windows\Microsoft.NET\Framework\v4.0.30319\ @echo 服务安装中... InstallUtil.exe C:\ProjectService\DemoService.exe @echo 服务安装完成. pause
执行如下脚本启动服务:
@echo off if not exist C:\\ProjectService\\LOG\\ (
md C:\\ProjectService\\LOG\\
) @echo 服务启动中... net start DemoService @echo 服务正在运行... pause
执行如下脚本停止服务:
@echo off @echo 服务停止中... net stop DemoService @echo 服务已经停止. pause
执行如下脚本卸载服务:
@echo off
set path=C:\Windows\Microsoft.NET\Framework\v4.0.30319\ @echo 服务卸载中... InstallUtil.exe /u C:\ProjectService\DemoService.exe @echo 服务卸载完成. pause
7、如果把命令写在一起,可以根据选择进行操作,命令如下:
@echo off
@echo ********************************************** rem 关闭自动输出 :begin echo 请输入 1:安装服务 2:启动服务 3:停止服务 4:卸载服务 其他:退出
rem 接收输入
set input=
set /p input= rem 输出得到的输入信息 rem echo 您输入的字符串是:%input%
if %input%==1 (
set path=C:\Windows\Microsoft.NET\Framework\v4.0.30319\
@echo 服务安装中...
InstallUtil.exe C:\ProjectService\DemoService.exe
@echo 服务安装完成.
goto begin
)
if %input%==2 (
set path=C:\Windows\System32\
if not exist C:\\ProjectService\\LOG\\ (
md C:\\ProjectService\\LOG\\
)
@echo 服务启动中...
net start DemoService
net start MonitorService
@echo 服务正在运行...
goto begin
)
if %input%==3 (
set path=C:\Windows\System32\
@echo 服务停止中...
net stop DemoService
net stop MonitorService
@echo 服务已经停止.
goto begin
)
if %input%==4 (
set path=C:\Windows\Microsoft.NET\Framework\v4.0.30319\
@echo 服务卸载中...
InstallUtil.exe /u C:\ProjectService\DemoService.exe
@echo 服务卸载完成.
goto begin
) goto end rem pause>null rem echo. rem 从begin标签出,再次运行 rem goto begin :end @echo **********************************************
完整代码:DemoService.rar
自定义Windows服务并实施安装的更多相关文章
- Windows服务创建及安装
Windows服务创建及安装http://www.cnblogs.com/tuyile006/archive/2006/11/27/573654.html
- 关于windows服务的编写/安装/与调试
前注: 首先,这篇文章是从网上转过来的,因为最近有个项目,需要编写一个Windows Service来定时执行程序,网上很容易找到了这篇文章,大概看了一下,文章讲的还是很详细的.不过这篇文章应该是.n ...
- .net windows 服务创建、安装、卸载和调试
原文:http://blog.csdn.net/angle860123/article/details/17375895 windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境 ...
- C# windows 服务编写及安装
最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里 ...
- 基于C#&.net2.0的windows服务创建与安装
起因:一台服务器中部署的程序,停电后未按照计划任务正常启动. 一.创建并配置Windows服务程序 开发工具VS2015 Framework版本2.0 1.新建Windows服务 2.在Service ...
- c# windows服务 一个项目安装多个服务
创建windows服务就不讲解了,其它大神写太多了.这里只写一个项目安装多个服务的教程.如:http://www.cnblogs.com/zzgblog/p/4595839.html 首先按下图创建多 ...
- windows服务搭建(VS2019创建Windows服务不显示安装组件)
1.创建windows服务应用 2.右键查看代码 3.写个计时器Timer using System.Timers; 如上图,按tab键快速操作 会自动创建一个委托 改为下边的方式,打印日志来记录 ...
- 安装、部署... Windows服务 .net程序 安装 命令
@echo offInstallutil.exe 程序目录 F:\test\TestWindows.exe 服务程序目录@sc start "服务名称"@sc config &qu ...
- 用VS制作的windows服务安装包 安装完后如何让服务自动启动
vs 服务做成安装包,如何安装以后启动服务,只要在类名为projectinstaller的类中重写commit事件即可 public override void Commit(IDic ...
随机推荐
- scrapy之分布式
分布式爬虫 概念:多台机器上可以执行同一个爬虫程序,实现网站数据的分布爬取. 原生的scrapy是不可以实现分布式爬虫? a) 调度器无法共享 b) 管道无法共享 工具 scrapy-redis组件: ...
- 开放定址法——平方探测(Quadratic Probing)
为了消除一次聚集,我们使用一种新的方法:平方探测法.顾名思义就是冲突函数F(i)是二次函数的探测方法.通常会选择f(i)=i2.和上次一样,把{89,18,49,58,69}插入到一个散列表中,这次用 ...
- 初见spark-03(高级算子)
最近心情不是很好,但是需要调节自己,真的需要调节自己,还是要努力,这个世界有我喜欢的人,有我追求的人,也许真的是守的住寂寞,耐得住繁华吧. 不说别的了,今天我们来接受啊spark的高级算子的系列 1. ...
- 奇异值分解(SVD)原理详解及推导
在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系.前段时间看了国外的一篇文章,叫A Singularly Valuable Decompos ...
- NPM安装vue-cli,并创建vue+webpack项目模板
1.安装npm npm 是node.js 的包管理工具, 安装流程地址:https://docs.npmjs.com/cli/install 估计会非常慢,我们可以使用淘宝NPM镜像下载安装:htt ...
- 7 定制10MINs首页2
1.添加 <div class="ui basic segment"> <h1 class="ui center aligned header" ...
- mybatis异常:There is no getter for property named 'xxx' in 'xxx'
在使用mybatis查询的时候出现了下面的异常: org.apache.ibatis.reflection.ReflectionException: There is no getter for pr ...
- 实现jQuery的$.extend方法
var o1 = { hello : 1, old : 555 }, o2 = { abc : 55555555, hello : 2, fun : function() { alert(111); ...
- 《数据结构与算法分析:C语言描述》复习——第六章“排序”——冒泡排序
2014.06.17 01:04 简介: 冒泡排序是O(n^2)级别的交换排序算法,原理简单,属于必知必会的基础算法之一. 思路: 排序要进行N轮,每一轮从尾部逐个向前扫描,遇到逆序对就进行交换.确保 ...
- 剑指Offer - 九度1387 - 斐波那契数列
剑指Offer - 九度1387 - 斐波那契数列2013-11-24 03:08 题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.斐波那契数列的定义如下: ...