用.Net开发Windows服务初探

1 什么是Windows服务
        Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合。它没有用户界面,并且也不会产生任何可视输出。任何用户消息都会被写进Windows事件日志。计算机启动时,服务会自动开始运行。它们不要用户一定登录才运行,它们能在包括这个系统内的任何用户环境下运行。通过服务控制管理器,Windows服务是可控的,可以终止、暂停及当需要时启动。

2 创建一个Windows服务
        我们即将创建的这个服务是用来监视文件是否被改动的,只要指定的目录下的文件被改动,都会记入日志的。下面就让我们来创建这个Windows服务。

Visual Studio .NET能够使创建一个Windows服务变成相当简单的一件事情。(1)打开Visual Studio.net
(2)新建一个Windows服务项目,选取“Visual C#”项目,然后在选取Windows服务模板
(3)将项目名称设置为WatchFileService单击确定
(4)将Service1.cs重命名为WatchFile.cs
(5)转到WatchFile.cs的设计画面,设置属性窗口中的ServiceName属性为WatchFileService,并从工具——〉组件中拖放FileSystemWatcher和EventLog到设计画面,拖放后的结果,如图:
               

(6)设置fileSystemWatcher1的Filter属性为*.txt,Path属性为c:\temp
(7)设置eventLog1的source属性为fileSystem-Watcher1
(8)双击fileSystemWatcher1,添加如下代码:

private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
{
    eventLog1.WriteEntry(e.Name + " 这个文件在:"+DateTime.Now.ToString() + “ 被改动了!”);
}

3 使用Installer类
(1)将WatchFile.cs切换到设计画面,在WatchFile的属性窗口下方按下“添加安装程序”选项。VS.net会自动添加一个ProjectInstaller.cs文件,这个文件的设计画面包含两个控件——serviceProcessInstaller1和serviceInstaller1,画面如图
              

(2)设置serviceProcessInstaller1控件的Account属性为“LocalSystem”
(3)编译这个项目,可以在项目的bin\debug目录下找到WatchFileService.exe的文件

3 安装Windows 服务
(1)进入命令提示符模式,开始菜单——〉程序——〉Micosoft Visual Sdudio.net2003——〉Visual Sdudio.net工具——〉Visual Sdudio.net 2003命令提示
(2)在命令提示下进入项目文件夹\bin\debug目录
(3)输入installutil WatchFileService.exe,安装服务成功,结果如图 
       

(4)若要删除这个服务,则输入installutil /u WatchFileService.exe

4 设置服务为自动启动
        将ProjectInstaller.cs转到设计状态,修改serviceInstaller1组件的StartType属性为Automatic,这样服务安装后,当操作系统重新启动后,服务就会自动启动。

5 调试Windows服务
        从另外的角度度看,调试Windows服务绝不同于一个普通的应用程序。调试Windows服务要求的步骤更多。服务不能象你对普通应用程序做的那样,只要简单地在开发环境下执行就可以调试了。服务必须首先被安装和启动,这一点在前面部分我们已经做到了。为了便于跟踪调试代码,一旦服务被启动,你就要用Visual Studio把运行的进程附加进来(attach)。记住,对你的Windows服务做的任何修改都要对这个服务进行卸载和重安装。

6 附加正在运行的Windows服务
        为了调试程序,有些附加Windows服务的操作说明。这些操作假定你已经安装了这个Windows服务并且它正在运行。

(1)用Visual Studio装载这个项目
(2)点击“调试”菜单
(3)点击“进程”菜单
(4)确保 显示系统进程 被选
(5)在 可用进程 列表中,把进程定位于你的可执行文件名称上点击选中它
(6)点击 附加 按钮
(7)点击 确定
(8)点击 关闭
(9)在fileSystemWatcher1_Changed方法里设置一个断点,然后等它执行

7 效果
(1)在c:\temp目录下新建一个文本文件,并编辑该文件
(2)打开事件查看器工具中的应用程序日志,可以看到有日志项目生成,
               

用.Net开发Windows服务初探相关推荐

  1. 利用vs.net快速开发windows服务(总结)

    引用 http://www.cnblogs.com/lovecherry/archive/2005/03/25/125527.html 在很多应用中需要做windows服务来操作数据库等操作,比如 ( ...

  2. VS2013开发Windows服务项目

    这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...

  3. .NET开发Windows服务

    一.概述 本文旨在简单论述如何开发Windows服务程序. 服务名称:ServiceTest 实验环境:VS2015 最终程序结构: 二.步骤 1.创建一个项目,选择Windows 服务,更改项目名称 ...

  4. vs2015开发Windows服务

    工作已经很久,时隔这么长时间写这篇文章是给自己以后做参考.也不至于以后长时间不写Windows服务而忘记整个开发过程.windows服务开发,基础的就不说了,直接上过程. 1.新建windows服务项 ...

  5. Windows服务初探

    在Windows中,对于一些不需要显示图形界面的应用程序,我们可以把它做成Windows服务,让它在后台运行,例如一些文件监视服务等.一台电脑中的Windows服务可以在"计算机-管理-服务 ...

  6. fileservice 类代码放哪里_一步步开发Windows服务(Windows Service)[转]

    基于0起步来创建一个服务,做到简单的记录时间日志功能,其具体招行方法可自行添加. 1.创建服务 2.删除默认服务文件 3.添加自己的服务文件 4.更改启动项目 5. 引用 using System.T ...

  7. netcore开发windows普通服务(非Web)并一键发布到服务器

    netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run改为host.RunAsService就可以了. 但是普通的netcore的控 ...

  8. 杂记2:VS2013创建Windows服务实现自动发送邮件

    这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...

  9. python windows服务_Python创建Windows服务

    首先让我们开始安装Python for Windows扩展: c:test>pip install pywin32 完成后,让我们编写该基类,您的Windows服务将是该基类的子类. ''' S ...

最新文章

  1. JavaScript中的异步梳理(0)
  2. 杨元庆捐资1亿人民币,要为母校上海交大建“最好的”高性能计算中心
  3. eclipse html自动编译,eclipse不自动编译解决方法 不编译要怎么办
  4. wordpress 主题教程-笔记
  5. 自动化测试框架:没有Surprise的原因
  6. css Tab选项卡
  7. XP下卸载IE8还原到IE7的解决方法
  8. qss qmenu 设置icon位置大小_实战PyQt5: 125-使用配置文件来保存和恢复应用的设置...
  9. python将小数转为分数_Python分数
  10. AI架构师:深度学习框架、部署上线及应用,一文梳理
  11. 使用Python删除Windows中只读文件
  12. delphi dbgrid 焦点 行号_徐睿知真人版娜美?!2020釜日电影奖铅笔腿、超凶双峰,惊人身材抢下所有焦点...
  13. python 读取json与xml格式化等处理
  14. 键盘鼠标录制哪个好用_视频录制不用慌!这4个免费软件随意挑,网友:电脑神器...
  15. OpenGL 实现视频编辑中的转场效果
  16. Phonetic symbol 辅音 - 清辅音 -- /f/
  17. python jupyter怎么用_Python的IDE之Jupyter的使用
  18. 计算机操作系统 - 内存管理
  19. python中如何打印阶梯_python 阶梯图
  20. Android鹰眼轨迹追踪

热门文章

  1. 与7无关的数(信息学奥赛一本通-T1094)
  2. 信息学奥赛C++语言:派送蛋糕
  3. 39 FI配置-财务会计-固定资产-组织结构-定义号码范围间隔
  4. 设置jstree只展示到2级_你做的私域流量属于什么级别?80%的商家都还只在第2级...
  5. linux内核驱动工作队列用法
  6. tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
  7. 安装torch_sparse失败解决方法
  8. 学习opencv之cvtColor
  9. 02_Influxdb开启登录认证
  10. 使用JS提交form表单和w3c标准