.NET4 Windows Service 监控磁盘文件

来源:互联网 发布:php getclass 方法 编辑:程序博客网 时间:2024/04/30 00:58

http://www.cnblogs.com/ryanding/archive/2011/02/04/1948746.html

 

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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 银行卡短信通知没了怎么办 斗鱼手机号被绑定了怎么办 网易邮箱不记得账号怎么办 qq号被盗申诉不回来怎么办 号被盗了申诉不回来怎么办 富士康离职后工资卡号没填怎么办? 填高考志愿时没填电话号码怎么办 铁路12306密码忘了怎么办 微销通提示网络请求失败怎么办 苹果手机出现不停播报情况怎么办 手做俯卧撑抬不起来怎么办 如果qq号被冻结了怎么办 买的qq号被冻结怎么办 联想平板怎么下载东西怎么办 所有浏览器都安装不了怎么办 忘记微博登录邮箱怎么办 丰巢验证码丢了怎么办 微博昵称忘了怎么办 163邮箱账号忘记了怎么办 苹果手机id邮箱忘记了怎么办 微信号没注销了怎么办 微信昵称换不了怎么办 微博支付密码忘记怎么办 微博支付密码忘记了怎么办 华为手机看不见截屏怎么办 支付宝密码错误被锁定怎么办 实名身份证的微信限额怎么办 工行网银登陆密码忘了怎么办 美亚买的东西坏了怎么办 海带宝转运到香港怎么办 海带宝转运仓库入库错误怎么办 三星s7edge密码忘了怎么办 ie网页被拦截了怎么办 手机打开百度网页弹出广告怎么办 网站策略服务已被禁用怎么办 谷歌浏览器打不开网页怎么办 mac用户名密码忘记了怎么办 苹果7网速太慢怎么办 ps中图片选不中怎么办 加装硬盘不显示怎么办 win10网络无权限访问怎么办