C#编写Windows服务实例代码
使用MicrosoftVisualStudio2012可以很方便的创建一个Windows服务,本例实现一个向D盘的txt文件里,写入系统时间的Windows服务。
新建一个WindowsServices工程:
工程创建好之后,默认会有一个Services1.cs文件,删掉此文件,重新添加一个新Item
右击新添加的这个文件,选择Viewcode,可以看到,有两个函数OnStart和OnStop,OnStart函数在启动服务时执行,OnStop函数在停止服务时执行。
这两个函数的代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Diagnostics;
usingSystem.Linq;
usingSystem.ServiceProcess;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.IO;
namespaceMyFirstWindowsService
{
partialclassMyWindowsService:ServiceBase
{
publicMyWindowsService()
{
InitializeComponent();
}
protectedoverridevoidOnStart(string[]args)
{
//TODO:Addcodeheretostartyourservice.
FileStreamfileStream=newFileStream(@"D:\MyWindowsService.txt",FileMode.OpenOrCreate,FileAccess.Write);
StreamWriterstreamWriter=newStreamWriter(fileStream);
streamWriter.BaseStream.Seek(0,SeekOrigin.End);
streamWriter.WriteLine("Myservicestarted"+DateTime.Now.ToString()+"\n");
streamWriter.Flush();
streamWriter.Close();
fileStream.Close();
}
protectedoverridevoidOnStop()
{
//TODO:Addcodeheretoperformanytear-downnecessarytostopyourservice.
FileStreamfileStream=newFileStream(@"D:\MyWindowsService.txt",FileMode.OpenOrCreate,FileAccess.Write);
StreamWriterstreamWriter=newStreamWriter(fileStream);
streamWriter.BaseStream.Seek(0,SeekOrigin.End);
streamWriter.WriteLine("Myservicestopped"+DateTime.Now.ToString()+"\n");
streamWriter.Flush();
streamWriter.Close();
fileStream.Close();
}
}
}
之后需要新建一个安装组件MyWindowsServiceProjectInstaller(右击MyWindowsService.cs这个文件选择viewdesiner,然后选择AddInstaller),需要将MyFirstWindowsServiceProcessInstaller的account属性设置为localservice.
编写批处理文件:
安装服务批处理:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exeC:\Users\gaoja1\Desktop\MyWindowsService\MyFirstWindowsService\bin\Debug\MyFirstWindowsService.exe
NetStartServiceTest
scconfigServiceTeststart=auto
卸载服务批处理:
服务安装好之后:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe/uC:\Users\gaoja1\Desktop\MyWindowsService\MyFirstWindowsService\bin\Debug\MyFirstWindowsService.exe
服务启动之后可以在D盘看到一个txt的文件,里面记录了服务的启动时间.
相关文章