惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
小众软件
小众软件
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
Last Week in AI
Last Week in AI
博客园_首页
I
InfoQ
T
Tailwind CSS Blog
爱范儿
爱范儿
雷峰网
雷峰网
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
WordPress大学
WordPress大学
A
About on SuperTechFans
V
Visual Studio Blog
有赞技术团队
有赞技术团队
P
Proofpoint News Feed

博客园 - 3stones

.NET平台下WEB应用程序部署(安装数据库和自动配置)转 调试自定义操作/安装程序类的方法<转> - 3stones - 博客园 Sql Server中的集合操作Union Intersect Except 安装 启动 停止 卸载 Windows服务 c# 利用Mircosoft URLRewriter.dll实现页面伪静态 [C#]将数字前面补0,补足设定的长度 用IFormatter实现&gt;存储容器(功能:实现游戏保存和读取) 加壳工具简介(图) 查壳脱壳工具介绍(图) .net制作的wap网站在手机中的测试 - 3stones - 博客园 vs2008开发wap网站(一) 英文面试自我介绍(一) 丁香园-英语面试精选 英语面试自我介绍范文(二) Remoting的注册与注销 - 3stones - 博客园 创建一个从数据库读入内容的远程对象 c#中的remoting和webservice有什么区别 经典推荐--.Net面试法宝(面试题收集) Response.Redirect(),Server.Transfer(),Server.Execute()的区别
如何创建/安装/调试Windows服务&lt;转&gt;
3stones · 2010-01-29 · via 博客园 - 3stones

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,添加如下代码:

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)打开事件查看器工具中的应用程序日志,可以看到有日志项目生成,