码迷,mamicode.com
首页 > Windows程序 > 详细

1.Windows服务-->添加一个简单的服务

时间:2014-07-31 16:49:07      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   io   文件   

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

 

  1.新建一个Windows服务项目

  bubuko.com,布布扣

  2.系统自动创建了一个Service1.cs的文件,双击打开Service1.cs文件,在工作区域右键-->属性或者F4可以查看文件属性

  bubuko.com,布布扣

  bubuko.com,布布扣

  

  Autolog                 是否自动写入系统的日志文件

  CanHandlePowerEvent     服务时候接受电源事件

  CanPauseAndContinue          服务是否接受暂停或继续运行的请求

  CanShutdown 服务是否在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程

  CanStop                              服务是否接受停止运行的请求

  ServiceName                       服务名称

  3.额,默认的Service1.cs文件名字确实比较不讨人喜欢,因此我们把文件名字修改成TestService(注意是文件名字而不是ServiceName,在上一步中,我已经定义ServiceName为TestService了,当然也可以是其他的)

  bubuko.com,布布扣

  4.Windows服务的主函数写在Program文件中,让我们来看看它的代码,发现如果我们定义了N多个服务,可以再这里定义到底运行哪个服务。

bubuko.com,布布扣
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new TestService() 
            };
            ServiceBase.Run(ServicesToRun);
        }
View Code

  5.查看TestService的代码,默认实现了OnStart和OnStop两个方法,以向一个文本中写入数据为例

bubuko.com,布布扣
        public TestService()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 服务启动了
        /// </summary>
        protected override void OnStart(string[] args)
        {
            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "服务启动了\n");
        }

        /// <summary>
        /// 服务停止了
        /// </summary>
        protected override void OnStop()
        {
            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "服务停止了\n");
        }

        /// <summary>
        /// 系统关闭
        /// </summary>
        protected override void OnShutdown()
        {
            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "系统关闭\n");
        }

        /// <summary>
        /// 服务暂停了
        /// </summary>
        protected override void OnPause()
        {
            HGL.Toolkit.IOHelper.FileOperate.WriteFile(@"F:\1.txt", "服务暂停了\n");
        }

        /// <summary>
        /// 服务继续
        /// </summary>
        protected override void OnContinue()
        {
            base.OnContinue();
        }

        /// <summary>
        /// 系统电源状态改变
        /// </summary>
        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        {
            return base.OnPowerEvent(powerStatus);
        }
View Code

  6.安装服务,切换到 Service1.cs[设计] 界面,右击选择“添加安装程序”。

  这时项目中就添加了一个新类 ProjectInstaller 和两个安装组件 ServiceProcessInstaller 和 ServiceInstaller。

  选中“serviceInstaller1” 控件,F4打开属性面板

  bubuko.com,布布扣 

  Description       服务程序的描述信息

  DisplayName     服务程序显示的名称

  StartType        指定如何启动服务      

                      Manual      服务安装后,必须手动启动

                      Automatic    每次计算机重新启动时,服务都会自动启动

                      Disabled     服务无法启动

  选中“serviceProcessInstaller1” 控件,F4打开属性面板

  bubuko.com,布布扣

  将serviceProcessInstaller类的Account属性改为 LocalSystem。这样,不论是以哪个用户登录的系统,服务总会启动。

  7.右击项目选择生成即可,Windows服务是不能通过F5进行运行的

1.Windows服务-->添加一个简单的服务,布布扣,bubuko.com

1.Windows服务-->添加一个简单的服务

标签:des   style   blog   http   color   os   io   文件   

原文地址:http://www.cnblogs.com/dmeiyang002/p/3880984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!