曾在VS2008下用C#编写过WindowsService监控进销存库存并且根据相关逻辑发送手机短信。现在.NET4.0、VS2010中使用C#编写Windows Service 监控指定目录文件。
具体步骤如下:
一、建立WindowsSerivce 工程
新建 Visual C# windows 目录下的 Windows Service 工程:"HelloWindowsService"。添加一个 App.config(配置文件,如:指定监控磁盘目录),一个ErrorLog.txt文件(记录服务运行日志)。截图如下:
注:为了方便调用App.config 配置文件内容,在工程内需要引入System.Configuration.dll 。
二、为WindowsSerivce编写监控目录核心代码
代码如下:
RecordErrorLog 函数记录了WindowsService 的具体监控内容。OnFileCreated 则是监控目录,如果有新文件建立则触发的事件。这里使用FileSystemWatcher类。
WindowsService 调用代码:
三、为WindowsSerivce添加Installer
在第二步中,已经完成为目录监控事件写入了简单的监控代码。此时还需要为Service添加Installer。Installer内需要设置Service名称、WindowsService说明等信息。具体的步骤可以在VS2010可视化界面内完成。步骤如下:
1.打开Service1设计界面点击鼠标右键
2.选择 Add Installer 栏目
3.设置相关属性
截图如下:
四、打包WindowsService
这里使用Visual Studio Installer 打包 HelloWindowsService 服务。在解决方案内新建一个Visual Studio Installer工程。接着右键该工程选择 添加 ---> Project Output。 截图如下:
点击确定:
接着还要为WindowsService添加安装和卸载功能。右键该项目文件(HelloWindowsServiceSetup工程)选择View后点击Custom Actions:
右键Install后选择 Add Custom Action,不做任何设置点击两次确定,对UnInstall进行同样的操作。截图如下:
以上步骤完成后还需要在安装工程内添加一个已存在的文件,该文件就是HelloWindowsService内的日志记录文件“ErrorLog.txt”。
至此,已经为HelloWindowsService添加了安装和卸载功能。
五、小结
完成以上步骤后还需要将 ProjectInstaller的serviceProcessInstaller1的Account 属性设置成 LocalSystem。这样每次安装服务就不需要输入Windows 帐号和密码。另外如果需要服务安装成功后自动启动,还需要修改ProjectInstaller.cs。为其添加AfterInstall事件,在该事件内添加启动服务代码。这样服务安装完成后就能够自启动了。
.NET下编写WindowsService很方便也很简单。如果您也感兴趣.NET下编写WindowsService那就赶紧尝试一下吧。
作者:RyanDing
出处:http://www.cnblogs.com/ryanding/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有疑问,可以通过 ryan.d@qq.com 联系作者本人。