Win服务程序编写以及安装一般步骤

  Windows服务的优点有:1. 能够自动运行。2. 不要求用户交互。3. 在后台运行。本文将介绍常见服务程序编写的一般步骤以及注意事项。

设计服务程序实例:

  1. 创建服务程序,主要功能:隔段时间自动写入字符串到文本文档中。

  使用语言:VB.Net,开发工具:Visual Studio 2010

  • 新建服务项目

  如图1所示:

图1

  • 添加组件

    操作如图2,得到如图3结果

图2

图3

  System.windows.forms中的time组件在服务程序中部适用,所以此处要选择system.timers.timer。继续图3操作后设置timer以及service1的属性.如图4/5。

图4

图5

  • 程序编写

图6

  代码如下:

 Protected Overrides Sub OnStart(ByVal args() As String)

 ' 请在此处添加代码以启动您的服务。此方法应完成设置工作,

 ' 以使您的服务开始工作。

 Timer1.Start()

 End Sub

 Protected Overrides Sub OnStop()

 ' 在此处添加代码以执行任何必要的拆解操作,从而停止您的服务。

 Timer1.Stop()

 End Sub

 Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed

 Dim witer As StreamWriter = New StreamWriter("C:\string.txt", True)

 witer.WriteLine("YourText")

 witer.Close()

 End Sub

  或者基于filestream写入,代码如下:

 Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed

 Dim fstream As New FileStream("G:\string.txt", FileMode.OpenOrCreate, FileAccess.Write)

 Dim write As New StreamWriter(fstream)

 fstream.Seek(, SeekOrigin.End)

 write.Write("MyTestService" & i.ToString)

 write.Close()

 fstream.Close()

 i += 

 End Sub
  • 服务程序安装

图7

  图7操作后出现如图8界面,设置安装控件属性如图9和图10

图8

图9

图10

  .net编写服务程序集成了许多的功能,此处创建服务安装,并不需要编写程序,只需添加控件,修改属性即可,十分方便。

  • 编译生成

  编译会出现警告,如图11,但程序没出先错误,查看C:\出现"string.text"文档,里面写入了文本。

图11

  • 安装及卸载

  启动vs命令提示符窗口。如图12

图12

  安装

  注意要以管理员身份运行

  Windows服务安装异常:System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可 访问的日志: Security。解决办法,以管理员身份运行即可。

  输入代码:

    InstallUtil C:\Users\h\Desktop\timetest_WindowsService\timetest_WindowsService\bin\Debug\timetest_WindowsService.exe

图13

  卸载

    installutil/u C:\Users\h\Desktop\timetest_WindowsService\timetest_WindowsService\bin\Debug\timetest_WindowsService.exe

图14

  默认情况下,Windows服务基于安全考虑,是不允许任何服务程序和桌面进行交互的。也就是说,使用任何的Windows Form 的很多特性将会莫名奇妙的不起作用,如进行messageBox的显示,启动另一进程,诸如:打开某个pdf格式的文件,者使用System.Windows.Form.Timer对象也不行,这种不起作用表现在没有进行服务程序安装的情况下调试的时候会提示无法启动服务需要安装的警告,但是 messageBox仍会显示,pdf格式的文档仍会打开;奇怪的是,在安装后,启动服务程序后,messageBox以及pdf格式的文档均不会打,开程序将没任何的响应。由于Windows服务具有难以调试的特点,如果不注意这点,你反复检查自己的代码,都很难发现问题的所在的。

  但也并不是说不能编写复杂的交互式服务程序,只是涉及到的知识会更复杂一些,通常会用涉及到一些Windows API接口的操作。本文旨在说明服务程序编写的一般步骤,对于复杂的交互服务程序,其一般流程大致相同,网上已有大神在此有详细的解释说明。可参考博客:http://www.cnblogs.com/gnielee/archive/2010/04/08/session0-isolation-part2.html,里面有很详细的介绍。

Win服务程序编写以及安装一般步骤的更多相关文章

  1. windows后台服务程序编写

    Windows后台服务程序编写 1. 为什么要编写后台服务程序 工作中有一个程序需要写成后台服务的形式,摸索了一下,跟大家分享. 在windows操作系统中后台进程被称为 service. 服务是一种 ...

  2. PostgreSQL在win7上安装详细步骤

    原文:PostgreSQL在win7上安装详细步骤 PostgreSQL安装: 一.windows下安装过程 安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程 ...

  3. Storm集群安装部署步骤【详细版】

    作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2012/11/30/how ...

  4. windows2003最详细的安装操作步骤.(最详细)

    以下为windows2003的安装操作步骤,由于安装操作步骤较多,安装可能需要一定的实际安装经验.安装时请参照此文档一步步完成安装. 一.首先准备好Windows2003安装光盘CD1,将CD1光盘放 ...

  5. Apache安装配置步骤

    注释:这里以Linux 红帽商业版为例~~~~~~~纯手打啊 Apache安装配置步骤 准备:关闭其他虚拟设备 #/etc/init.d/libvirtd stop #/etc/init.d/xend ...

  6. an'gularjs 环境搭建之NodeJS、NPM安装配置步骤(windows版本)

    NodeJS.NPM安装配置步骤(windows版本)  :http://xiaoyaojones.blog.163.com/blog/static/28370125201351501113581/ ...

  7. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  8. CentOS7/RHEL7安装Redis步骤详解

    CentOS7/RHEL7安装Redis步骤详解 CentOS7/RHEL7安装Redis还是头一次测试安装了,因为centos7升级之后与centos6有比较大的区别了,下面我们就一起来看看Cent ...

  9. Storm集群安装部署步骤

    本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章节以"注意事项"的形式给出. 1. Sto ...

随机推荐

  1. struts2入门Demo

    一.引入必要的jar包,所需jar包如下: 二.配置web.xml.主要目的是拦截请求 <?xml version="1.0" encoding="UTF-8&qu ...

  2. JDBC连接mysql数据库操作

    一.创建所需对象,并进行初始化 Connection connection=null; Statement statement=null; PreparedStatement pst; ResultS ...

  3. Node热部署插件

    一.supervisor 首先需要使用 npm 安装 supervisor(这里需要注意一点,supervisor必须安装到全局) $ npm install -g supervisor Linux ...

  4. 前后端分离之Swagger2

    1. 问题描述 随着软件过程的不断发展,前后端分离开发模式被越来越的开发团队使用,今天介绍下前后分离中必用的接口设计与调试工具-swagger2,前端人员根据swagger的描述,进行参数的传递:前后 ...

  5. MPP install

    greenplum install 注意事项:1.hostname 不能大写##2.如果segment和mirror副本数比较大,建议调整/etc/ssh/sshd_config的maxconnect ...

  6. NOIp 2018 普及&提高组试题答案

    你们考的咋样呢?在评论区说出自己的分数吧!

  7. 个人永久性免费-Excel催化剂功能第95波-地图数据挖宝之IP地址转地理地址及不同经纬度版本转换

    经过上一波POI兴趣点查询后,地图数据挖宝也接近尾声,这次介绍在数据采集.准备过程中需要用到的一些转换功能,有IP地址转换地理地址及不同地图版本的经纬度转换. 背景知识 在电商.网络的数据分析过程中, ...

  8. 庖丁解牛Linux内核分析 0x00:《庖丁解牛》

    庖丁解牛  吾生也有涯,而知也无涯 .以有涯随无涯,殆已!已而为知者,殆而已矣!为善无近名,为恶无近刑.缘督以为经,可以保身,可以全生,可以养亲,可以尽年. 庖丁为文惠君解牛,手之所触,肩之所倚,足之 ...

  9. [PTA] 数据结构与算法题目集 6-1 单链表逆转

    List Reverse(List L) { List p, q; p = L; q = L; L = NULL; while (p) { p = p->Next; q->Next = L ...

  10. c实现哲学家进餐问题。WINDOWS下。

    // 解决哲学家就餐问题// 每个哲学家可用一个线程来模拟.// 设有5个哲学家,5只筷子,每个哲学家吃饭时间为一个随机值,哲学家吃饭后的思考时间也是一个随机值.#include <Window ...