十步完成windows服务的安装.docx
- 文档编号:5216220
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:11
- 大小:824.62KB
十步完成windows服务的安装.docx
《十步完成windows服务的安装.docx》由会员分享,可在线阅读,更多相关《十步完成windows服务的安装.docx(11页珍藏版)》请在冰豆网上搜索。
十步完成windows服务的安装
十步完成Windows服务的安装
可能是太过于懒惰的原因,研究个windows服务的安装程序都花了大半天时间。
在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数。
事实上,既然要安装.net下制作的windows服务,肯定首先得在目标机器上安装有.net框架。
因此,InstallUtil.exe也一定已经存在目标机器上了,因而利用微软的傻瓜式操作就能很好地解决windows服务安装和卸载的问题。
过一段时间估计还要狠狠地利用windows服务来完成一些功能,为了加深印象,又回过头弄了一个名叫HelloWorldService的windows服务,用最简单的demo来完成所有的操作。
这个服务的功能,仅仅是在它启动的时候创建一个HelloWorld.txt文件,里边写上HelloWorld!
这几个简单的字母而已。
1、选择VisualC#->Windows->Windows服务,创建一个HelloWorldService项目。
2、通过ServiceName更改服务的名称为”HelloWorldService“,这是最后在安装服务成功后在服务管理面板出现的名称。
3、将Service1.cs更名为HelloWorldService.cs,在其OnStart方法中写入简单的代码,用来实现创建文件并写入“HelloWorld!
"这几个经典字母。
4、在HelloWorldService.cs的设计界面点右键,在弹出菜单中选择”添加安装程序“。
点击后出来的设计界面上添加了两个控件——ServiceProcessInstall和ServiceInstaller。
ServiceProcessInstall安装一个可执行文件,该文件包含扩展ServiceBase的类。
该类由安装实用工具(如InstallUtil.exe)在安装服务应用程序时调用。
在这里主要是修改其Account属性。
ServiceAccount指定服务的安全上下文,安全上下文定义其登录类型。
LocalService 充当本地计算机上非特权用户的帐户,该帐户将匿名凭据提供给所有远程服务器。
LocalSystem 服务控制管理员使用的帐户,它具有本地计算机上的许多权限并作为网络上的计算机。
NetworkService 提供广泛的本地特权的帐户,该帐户将计算机的凭据提供给所有远程服务器。
User 由网络上特定的用户定义的帐户。
如果为ServiceProcessInstaller.Account成员指定User,则会使系统在安装服务时提示输入有效的用户名和密码,除非您为ServiceProcessInstaller实例的Username和Password这两个属性设置值。
ServiceInstaller安装一个类,该类扩展ServiceBase来实现服务。
在安装服务应用程序时由安装实用工具调用该类。
在这里主要修改其StartType属性。
此值指定了服务的启动模式。
Automatic指示服务在系统启动时将由(或已由)操作系统启动。
如果某个自动启动的服务依赖于某个手动启动的服务,则手动启动的服务也会在系统启动时自动启动。
Disabled指示禁用该服务,以便它无法由用户或应用程序启动。
Manual指示服务只由用户(使用“服务控制管理器”)或应用程序手动启动。
5、上面这些都是安装包最终要安装/卸载的对象。
下面就来看看如何用.net制作安装包。
需要在解决方案里边添加一个安装项目,取其名称为HelloWorldSetup。
6、添加工程后,在默认的视图界面右键点击”应用程序文件夹“,选择”添加“->”项目输出“。
在弹出的窗口中选择”主输出“,点击”确定“。
7、上面的步骤定义了最后在应用程序文件夹中包含的内容。
下面来定义其他方面的内容。
在项目上点右键,选择视图->自定义操作。
8、出来如下的界面,然后在”自定义操作“上点右键,选择”添加自定义操作“。
在弹出的窗口中双击”应用程序文件夹“。
然后选择”主输出来自HelloWorldService(活动)“,点击”确定“。
选择之后会发现所有的操作下边都添加了刚才选定的项。
做到这一步,就能使安装程序卸载时不仅把程序卸载下来,也能把服务卸载下来。
9、接下来在安装项目上点右键,选择”生成“,就能使安装程序正常发布了,成功后会生成两个文件。
把这两个文件拷到目标机器上,双击HelloWorldSetup.msi文件,就可以开始安装服务的征途了。
安装成功后,就可以从服务管理面板中欣喜地看到我们梦寐以求的服务程序了。
不过在我点启动的时候,还出现了一段小插曲——系统报错了。
错误如下图:
不过不用急,这种错误可以在系统的”事件查看器“中的”应用程序“选项中查看具体的错误信息。
呵呵,原来是由于服务对于文件系统的操作权限问题所引起的。
跑回去一看,发现在第5步中对ServiceProcessInstaller的Account设置成了LocalService,于是乎改成了LocalSystem。
然后重新发布安装程序,再重新安装服务,再启动,呵呵,一切正常!
10、最后,一起来欣赏这个windows服务的成果:
总结:
遇到问题的时候一定要冷静,由浅入深系统地了解当前事务,而不要急于求成,这样的效率反而会比较低下。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完成 windows 服务 安装