RyanDing

用编码抒写未来

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

     曾在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那就赶紧尝试一下吧。

posted on 2011-02-04 11:37  ryanding  阅读(5545)  评论(10编辑  收藏  举报