Windows服务创建、安装、卸载、重启
时间:2011-01-17 来源:mxcjwl314
该服务主要实现的是:每隔1分钟在日志中写入一条记录,重启另外一个服务以及简单的安装、卸载过程。
1)需要创建一个Windows服务项目。
2)放一个Timer到界面上。它来自于System.Timers.Timer。
3)在界面上反键选择“添加安装程序”。设置serviceProcessInstaller1的Account属性为LocalSystem;设置serviceInstaller1的ServiceName属性为服务名称[如:Service1]、StartType属性为Automatic。
4)完成Timer的Elapsed事件。
App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="SpanTime" value="60000"/>
</appSettings>
</configuration>
Service1.cs
代码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.IO;
namespace TestWService
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
int spanTime = Convert.ToInt32(ConfigurationManager.
AppSettings["SpanTime"]); //从配置文件中读取间隔时间
this.timer1.Interval = spanTime;
timer1.Start();
WriteTxt("这是构造函数");
}
protected override void OnStart(string[] args)
{
}
protected override void OnStop()
{
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
WriteTxt(DateTime.Now.ToLongTimeString() + " hello");
ResetProc();
}
/// <summary>
/// 向TXT中写入字符串
/// </summary>
/// <param name="strTxt">字符串</param>
public void WriteTxt(string strTxt)
{
string FILE_NAME = @"D:\writeTest.txt";
if (File.Exists(FILE_NAME))
{
try
{
StreamWriter sw = File.AppendText(FILE_NAME);
sw.WriteLine(strTxt);
sw.Close();
}
catch (Exception)
{
throw;
}
}
else
{
try
{
StreamWriter s = File.CreateText(FILE_NAME);
s.WriteLine(strTxt);
s.Close();
}
catch (Exception)
{
throw;
}
}
}
/// <summary>
/// 在Windows服务中重启另外一个服务
/// </summary>
public void ResetProc()
{
ServiceController[] scServices;
scServices = ServiceController.GetServices();
try
{
foreach (ServiceController scTemp in scServices)
{
if (scTemp.ServiceName == "COMSysApp")
{
ServiceController sc = new
ServiceController("COMSysApp");
if (sc.Status == ServiceControllerStatus.Stopped)
{
sc.Start();
}
}
}
}
catch (Exception)
{
throw;
}
}
}
}
服务的创建、要实现的简单功能已经完成,那如何让它运行呢?其实服务的安装很简单,一句命令就可以完成:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe 服务路径[如:D:\TestWService\TestWService\bin\Debug\Service1.exe]
卸载
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /u 服务路径[如:D:\TestWService\TestWService\bin\Debug\Service1.exe]
相关阅读 更多 +