• VS.NET下创建Windows服务


    VS.NET下创建Windows服务

    1、什么是Windows服务?
    Windows
    服务是随着操作系统自动启动的一种应用程序。它没有用户界面,一般不与用户交互。当然,你的程序也可以记日志,并把消息写入Windows事件日志等。计算机启动时,一般服务也会自动开始运行。甚至在用户登录计算机之前就已经启动了。除了以上,它与一般的程序没有什么大的区别。你可以让它干你想它干的任何事。
    通过控制面板>计算机管理>服务控制管理器,你也可以手工启动、暂停、停止服务。

    2、使用VS.NET创建Windows服务
    VS.NET的开发环境中创建Windows服务很简单。
    1)新建>项目中选择Visual C#项目,选择Windows服务,输入MyService项目名称,确定即可;
    2
    )可以看到向导自动生成一个从ServiceBase继承下来的Service1服务,并重写了OnStart()OnStop()函数。
    3)提供你自己的服务。你可以把这两个函数当成是你启动你的服务的入口函数。比如说:你可以在OnStart()函数中启动socket侦听,再启动一个线程来处理业务操作;而在OnStop()函数中你可以关闭你的socket。当然你也可以设置CanPauseAndContinue的属性,让你的服务支持暂停和恢复操作,当然你同样要重写OnPause()OnContinue()函数。服务控制管理器就是通过调用OnStartOnPauseOnContinueOnStop来启动、暂停、恢复和停止你的服务的。
    4)添加安装代码。Windows服务不象其它EXE程序,它还必须要添加安装代码。所谓安装代码,其实并不是安装在系统中,而设置被安装时的服务的属性。真正的安装到系统还在下一步。打开设计视图,右键菜单中单击添加安装程序,或者在属性中单击添加安装程序,则自动添加了一个ServiceProjectInstallerServiceInstaller组件类。
    5)设置属性。
    设置ServiceInstaller组件的属性
      ServiceName:服务名称
      DisplayName:显示名称
      Description:描述
      StartType:启动类型,包括Automatic(自动)、Manual(手动)、Disabled(禁用)
    设置ServiceProcessInstaller的属性
      Account:帐户类型,包括LocalService(本地服务)、LocalSystem(本地系统)、NetworkService(网络服务)、User(指定用户)
    需要注意的是如果安装成本地服务,就需要进行如下设置:
      this.serviceProcessInstaller1.Username = "NT AUTHORITY\\LocalService"
      this.serviceProcessInstaller1.Password = ""
    6)编译即可完成服务。

    3、安装Windows服务
    1
    )打开VS.NET命令提示符
    2
    )执行命令 InstallUtil 路径+MyServcie.exe,其中路径是你的服务所在的整个路径。
    3)在服务控制管理器中可以看到你的服务了。

    4、卸载Windows服务。
    想更新你的服务,先要卸载你的服务再安装新的服务。卸载很简单,使用InstallUtil带上/u参数即可。执行命令:Installutil /u  路径+ MyService.exe

    5、调试Windows服务
    最麻烦的是调试了,你不能象其它程序一样直接调度你的服务,你必须使用VS.NET把运行的进程附加(Attach)来调试服务。
    1
    )先打开你的服务程序
    2
    )在服务控制管理台中启动你的服务
    3
    )点击调试>进程,在可用进程中选择你的服务程序,单击附加,确定、关闭即可。
    4
    )使用断点,象调试其它程序一样进行调试。
    当然,以上调试很不方便的。最好的技术巧就是,你最好先把你的代码重新写一个Main函数,修改你的工程类型为控制台程序,象一般的程序一样,把你的代码都调试好了,再修改回来。

     

  • 相关阅读:
    struts2.0利用注解上传和下载图片
    hibernate @ManyToOne
    Cookie会话管理
    ServletContext
    Servlet 1
    ArrayList
    BigInteger类和BigDecimal类
    Math类
    System类
    基本类型包装类
  • 原文地址:https://www.cnblogs.com/nofliu/p/1296607.html
Copyright © 2020-2023  润新知