windows服务

2.右键点击Service1.cs,查看代码, 用于编写操作逻辑代码
3.代码中OnStart用于执行服务事件,一般采用线程方式执行方法,便于隔一段事件执行一回
System.Timers.Timer timer1; //计时器
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("我的服务器启动");
//Writelog("");
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Interval = 1000;
timer1.Elapsed += new System.Timers.ElapsedEventHandler(click_ceshi);
timer1.AutoReset = true;
timer1.Enabled = true;
}
protected override void OnStop()
{
Log.Error("tingzhi fuwu +执行服务");
this.timer1.Enabled = false;
}
public void click_ceshi(object source, System.Timers.ElapsedEventArgs e)
{
int intHour = e.SignalTime.Hour;
int intMinute = e.SignalTime.Minute;
int intSecond = e.SignalTime.Second;
if (intHour == 10 && intMinute == 30 && intSecond == 00)
{
try
{
System.Timers.Timer tt = (System.Timers.Timer)source;
tt.Enabled = false;
sendMessage();
tt.Enabled = true;
}
catch (Exception)
{
Log.Error("出错了我的测试+执行服务");
throw;
}
}
}
public void sendMessage()
{
try
{
//new SendEmai().Email("");
Log.Error("我的测试+执行服务");
}
catch (Exception)
{
Log.Error("出错了我的测试+执行服务");
throw;
}
}
- 打开Service1.cs视图界面

- 2
在视图内右键-->添加安装程序

- 3
项目中添加了ProjectInstaller.cs文件,该文件中视图自动会添加俩个组件
serviceProcessInstaller1
serviceInstaller1

- 4
选中serviceProcessInstaller1组件,查看属性,设置account为LocalSystem

- 5
选中serviceInstaller1组件,查看属性
设置ServiceName的值, 该值表示在系统服务中的名称
设置StartType, 如果为Manual则手动启动,默认停止,如果为Automatic为自动启动
设置Description,添加服务描述

- 6
重新生成项目
END
安装服务
- 1
点击 开始,运行中输入cmd,获取命令提示符
win7需要已管理员的身份启动,否则无法安装
- 2
输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 回车
切换当前目录,此处需要注意的是,在C:\Windows\Microsoft.NET\Framework目录下有很多类似版本,具体去哪个目录要看项目的运行环境,例 如果是.net framework2.0则需要输入 cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
- 3
输入 InstallUtil.exe E:\TestApp\Winform\WinServiceTest\WinServiceTest\bin\Debug\WinServiceTest.exe 回车
说明:E:\TestApp\Winform\WinServiceTest\WinServiceTest\bin\Debug\WinServiceTest.exe表示项目生成的exe文件位置
- 4
打开服务,就可以看到已经安装的服务了
卸载服务
卸载很简单,打开cmd, 直接输入 sc delete WinServiceTest便可

浙公网安备 33010602011771号