自定义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 ...
随机推荐
- Spring---资源访问工具类
JDK所提供的访问资源的类并不能很好的满足各种底层资源的访问需求,因此,Spring设计了一个Resource接口,它为应用提供了更强大的访问底层资源的能力 主要方法 boolean exists() ...
- laravel5.5事件广播系统
目录 1. 定义广播事件 1.1 广播名称 1.2 广播数据 1.3 广播队列 1.4 广播条件 2. 频道授权 2.1 定义授权路由 2.2 定义授权回调 3. 对事件进行广播 3.1 可以使用ev ...
- laravel5.5探究容器的秘密
目录 1. 定义一个契约(接口) 2. 一个实现这个接口的类 3. 创建服务提供者 4. 注册服务提供者 5. 创建facades 6. 再然后需要到配置文件config/app.php中注册门面类别 ...
- 网易云深度剖析Kubernetes优化与实践
欢迎访问网易云社区,了解更多网易技术产品运营经验. 10 月 15 日,聚焦 Kubernetes 中国行业应用与技术落地的首届中国 Kubernetes 用户大会(KEUC)在杭州成功举办.本次大会 ...
- 通过学习制作长微博工具来了解水印的制作,及EditText中的内容在图片中换行显示
长微博工具非常有用,140字的要求可能阻止你写更多的内容,于是长微博工具应运而生,虽然网上有很多长微博工具,但是我都不是很满意,所以自己想做一个,通过做这个长微博工具,我学习到了很多东西,有两个难点, ...
- Pascal小游戏 俄罗斯方块
俄罗斯方块已经成为了和“Hello World”一样的程序了吧? 不要直接复制,可能需要事先 Format. program cube;uses crt,graph,dos;var gd,gm:sma ...
- CodeIgniter学习笔记五:分页,文件上传,session,验证码
一.分页 示例代码: //装载类文件 $this -> load -> library('pagination'); $controller = $this->router-> ...
- 玩转Openstack之Nova中的协同并发(一)
玩转Openstack之Nova中的协同并发(一) 前不久参加了个Opnstack的Meetup,其中有一个来自EasyStack的大大就Nova中的协同并发做了一番讲解,有所感触,本想当天就总结一下 ...
- 22、(转载)jQueryMobile 知识点总结
本文转自:http://www.cnblogs.com/jxyedu HTML5技术生态介绍 H5的现状与未来 HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准 ...
- Abstract Factory 抽象工厂(创建型模式)
1.常规的对象创建方法(以更换QQ空间主题为例) (这里的常规对象指的是由于业务需求,当前实例化的对象有可能被其他相似的对象(有着共同的特性)所取代,例如更换手机铃声:一首歌取代另一首歌(词,曲,和声 ...