用C#创建Windows Service

现在的。NET框架已经为 service的开发提供足够强大的支持,你只需要关注service所要实现的逻辑,而完全不用关心service底层是如何实现的,相比以前用MFC来说,真是质的飞跃啊。闲话少谈,看看如何实现一个最基本的windows service,以及如何来调试windows service.

打开VS 2005,点击File->New->Project…。,在创建工程向导中选择 service模板,如下图所示:

在工程名输入框中,输入TestService然后点击OK.VS为我们生成了最基本的代码,我们将Service的名称改为我们期望的名称,在solution explorer中右键点击vs自动生成的service文件“Service1.cs”,在弹出的菜单中选择Rename,输入“MyFirstService”,然后切换到设计视图,也就是在solution explorer中双击MyfirstService.cs,在Property Explorer中将ServiceName属性改为MyFirstService,这时一个可运行的windows service已经创建成功。我们添加一些代码来测试一下这个service,最简单的测试方式就是向windows event log里来添加一些消息以显示我们的Service的状态。

我们需要一个EventLog组件向windows log中添加信息,在solution explorer中双击MyfirstSerice文件切换到设计视图,将工具箱中的EventLog组件拖到设计视图中,我们保留EventLog组件的默认名称eventLog1.选中eventLog1,在property explorer中将Log属性选为Application,在Source属性中输入“MyFirstService”。接下来,我们在设计视图的空白处,右键点击,并选择View Code切换到代码视图,在OnStart和OnStop方法里输入代码实现日志写入,代码如下:

要运行这个service我们还要做下边的几个步骤:

1.为我们的Service添加Installer,右键点击设计视图,选择Add Installer,VS将会为我们添加ProjectInstaller.cs,并在ProjectInstaller中添加组件serviceInstaller1和serviceProcessInstaller1,现在我们来修改他们的属性来控制Service的安装和启动选项。在ProjectInstaller得设计视图中选中serviceProcessInstaller1,将它得Account属性选为LocalSystem,这样以这个帐号服务启动。如果你希望系统启动时自动启动服务得话,将serviceInstaller1的StartType的属性选为Automatic,如果手动启动的话,选为manaul.

2.安装service,我们要用到IntallUtil.exe这个程序,这个程序位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727。点击开始菜单,选择“运行”,在运行对话框中输入cmd,进入到命令行窗口,输入cd :\WINDOWS\Microsoft.NET\Framework\v2.0.50727,进入到这个目录,然后输入installutil F:\Programs\C#\TestService\TestService\bin\Debug\testserveice.exe, installutil后边的内容就是我们的工程生成的可执行程序的路径,情根据需要修改。

如果你给ServiceInstaller1的StartType设为Automatic的话,安装完服务,服务已经运行起来了,如果StartType是Manual的话,你需要手动启动。现在我们进入“服务”,要打开“服务”,请单击“开始”,指向“设置”,然后单击“控制面板”。依次单击“性能和维护”、“管理工具”,然后双击“服务”。在里边你应该能够看到我们制作的Service MyFirstService.在这里边,我们可以启动,关闭服务,还可以设置服务的启动类型。然后,我们看看服务有没有正确的写入日志,我们需要进入到事件查看器,要打开“事件查看器”,请单击“开始”,指向“设置”,然后单击“控制面板”。单击“性能和维护”,单击“管理工具”,然后双击“事件查看器”。如下图所示,我们的消息已经成功的写到了系统日志里了。

时间: 2024-08-07 14:58:41

用C#创建Windows Service的相关文章

用.net创建windows service的总结(C#代码)tojike(原作)

window|创建 用.net创建windows service的总结    tojike(原作)    关键字     windows service    前言 net为创建windows service提供了专门的类库,结束了以前开发windows service窘迫的局面.你甚至可以不用添加一行代码,就可以用wizard生成一个windows service. 一.用wizard生成最基本的框架 此时,系统会为你生成一个框架,部分主要源代码如下: using System; using

手把手教会你如何通过C#创建Windows Service

本文转载:http://www.cnblogs.com/xiurui12345/archive/2012/05/16/2503868.html Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入. 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建一个Wi

创建windows服务,定时监控网站应用程序池

最近网站总是报"Timer_Connection"错误,导致该网站所使用的应用程序池由于错误过多停止运行,网站也就出现了service unvaliable,无法访问,在网上查了很多资料, 结果很让人无奈,这个问题已经困扰我了很久,一直没有得到解决,后来同事发来一篇文章让我有了新的解决方法,虽然不能根本解决这个报错,但可以快速清空并恢复指定的应 用程序池 不多说了,看看下面这个方法吧,主要是创建一个连接(如你要监控的网站的一个地址),如果能访问到这个页面说明网站应用程序池没有问题,如果

Windows Service的安装卸载 和 Service控制

原文 Windows Service的安装卸载 和 Service控制 本文内容包括如何通过C#代码安装Windows Service(exe文件,并非打包后的安装文件).判断Service是否存在.获得Service状态及启动停止Service. 创建Windows Service项目并Build得到exe文件,如何创建 Service 可参考 创建windows service 并打包成安装文件. 一. Windows服务的安装和卸载 安装和卸载服务可以使用 .NET 工具installut

创建一个Windows Service应用程序

window|程序|创建 创建一个Windows Service应用程序-------------------------------------------------------------------------------- 下载本文代码见资源 正是由于.NET Framework的出现,才使你能够构建出在系统重新启动时自动运行的.无人参与的(unattended)应用程序.by Stan Schultes技术工具箱:VB.NET, XML, ASPWindows service应用程序

利用windows service 2003来创建多域间访问的搭建与架设(一)

实验环境: 西安凌云高科技系统集成由限公司在日常办公之中使用的域是benet.Com(一个林):由于工程部最近接到了一个项目:搭建了一个域名为"project.com"(是另一个林).然后在该域中一个共享文件夹让benet.com中的工程部的员工来访问来达到不同域中的员工互相讨论:如何让不同的域之间的工程部的员工互访?如何让不同的域来达到网络的相互信任?如何完成上面的需求?下面我们具体的来一步一步的做? 实验目的: 理解信任关系的概念: 理解跨域间访问的配置方法: 利用AGDLP规则实

用Visual C#创建Windows服务程序

visual|window|程序|创建  一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Windows服务程序需要程序员很强的C或C++功底.然而现在在Visual Studio.Net下,你可以运用C++或Visual C#或Visual Basic.Net很轻松的创建一个Windows服务程序.同样,你还可以运用其他任何与CLR相容的语言来创建Wi

用C#创建Windows(NT)服务

window|创建 Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是一件困难的事,本文就将指导你一步一步创建一个Windows服务并使用它.这个服务在启动和停止时,向一个文本文件中写入一些文字信息.这个小技巧来自于MSDN,但是现在程序编写的更加清晰,并且你可以根据你的需要修改它.可下载工程文件包:mcWinService.zip. 第一步:创建服务框架 要创建一个新的 Windows 服务,可

C#发现之旅:C#开发Windows Service程序(下)

类似的对于"停止服务",其点击事件处理为 private void btnStopService_Click(object sender, EventArgs e) { if (bolServiceInstalled == false) return; using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController("MyFileSyste