windows服务开发

Posted LoveTomato

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows服务开发相关的知识,希望对你有一定的参考价值。

学然后知不足 教然后知困。

没做过windows service开发时,感觉很难,无从下手。再网看了些例子,加上自己的理解,写下开发步骤。

开发步骤

  1. 新建windows service

  2. 添加服务,发表后将再自己的电脑的 服务管理 查看到

	partial class MyService : ServiceBase
	{
		Timer timer1;

		public MyService()
		{
			InitializeComponent();
		}

		protected override void OnStart(string[] args)
		{
			// TODO: Add code here to start your service.

			using (StreamWriter sw = File.AppendText(@"D:\\\\log2.txt"))
			{
				sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " Start.");
			}

			timer1 = new Timer();
			timer1.Interval = 2000;
			timer1.Elapsed += (sender, e) =>
			{
				using (StreamWriter sw = File.AppendText(@"D:\\\\log2.txt"))
				{
					sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " Countue...");
				}
			};
			timer1.Start();
		}

		protected override void OnStop()
		{
			// TODO: Add code here to perform any tear-down necessary to stop your service.
			using (StreamWriter sw = File.AppendText(@"D:\\\\log2.txt"))
			{
				sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " Stop.");
			}
		}
	}
  1. 添加服务安装程序(这是vs给提供的方便操作),可以发表多个服务。

右击,点击Add Installer,自动生成类ProjectInstaller。大家可以看下vs自动生成的类ProjectInstaller.Designer.cs文件

private void InitializeComponent()
		{
			this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
			this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller();
			//设置服务安装信息
			this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
			this.serviceProcessInstaller1.Password = null;
			this.serviceProcessInstaller1.Username = null;
			//要安装的服务(保证与你的服务名一致,可添加多个)
			this.serviceInstaller1.ServiceName = "MyService";
			//服务加入
			this.Installers.AddRange(new System.Configuration.Install.Installer[] {
            this.serviceProcessInstaller1,
            this.serviceInstaller1});

		}

注意将服务安装设置为:手动安装
4. 服务安装卸载脚本
Install.bat 文件:

%SystemRoot%\\Microsoft.NET\\Framework\\v4.0.30319\\InstallUtil.exe "%~dp0%WindowsServiceTest.exe"
pause

Uninstall.bat文件:

%SystemRoot%\\Microsoft.NET\\Framework\\v4.0.30319\\InstallUtil.exe -u "%~dp0%WindowsServiceTest.exe"
pause

以上是关于windows服务开发的主要内容,如果未能解决你的问题,请参考以下文章

你可能不知道的JavaScript代码片段和技巧(上)

很实用的JQuery代码片段(转)

asp.net页面实用代码片段

VSCode插件开发全攻略代码片段设置自定义欢迎页

windows通过Visual Studio Code中配置GO开发环境(转)

add application window with unknown token XXX Unable to add window;is your activity is running?(代码片段