zoukankan      html  css  js  c++  java
  • [C#]使用Console(控制台)调试 Windows 服务

      介绍  

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

          这里我就不演示如何创建一个Windows服务了,通常我们在写windows服务的时候遇到的最大问题就是如何调试Windows服务,最常用的方式是附加到进程,可这种方式不方便的地方是每次都要附加,非常麻烦,所以我推荐下面一种方式,用控制台来调试Windows服务,具体操作起来也非常简单。

     

      正文  

          首先将项目设置为,控制台应用程序,点击项目属性,将输出类型设置为“控制台应用程序”,如下图。

            接下来,把一下这段代码,主要建立控制台调用的启动和停止服务的方法,复制到Service.cs (就是你自己建的Service中)。

            #if DEBUG
            /// <summary>
            /// 调试用
            /// </summary>
            /// <param name="args"></param>
            public void Start(string[] args)
            {
                this.OnStart(args);
            }
            public void Stop()
            {
                this.OnStop();
            }
            #endif

          下一步,把下面这段代码复制到解决方案根目录下的,Programs中。

                #if DEBUG
                string[] args = new string[] { " " };
                SubscribeService x = new SubscribeService(); //这里要替换成你自己服务的名称
                if (args.Length > 0)
                {
                    Console.WriteLine("==========开始使用控制台调试Windows服务==========");
                    x.Start(args);
                    Console.ReadLine();
                }
                else
                {
                    System.ServiceProcess.ServiceBase[] ServicesToRunTemp;                ServicesToRunTemp = new System.ServiceProcess.ServiceBase[] { x };
                    System.ServiceProcess.ServiceBase.Run(ServicesToRunTemp);
                }
                #endif

          大功告成,现在就可以把Windows服务当成一个控制台程序来调试了,当然在发布服务的时候还是要把输出类型改回来的。

      

    作者:布鲁斯张
    出处:http://www.cnblogs.com/brucezhang80/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    用Java redis 实现发送手机验证码的功能
    redis之Java Jedis 的使用(使用maven引入)
    设计模式之代理模式
    Redis相关配置
    Redis五大数据类型
    设计模式之享元模式
    设计模式之外观模式
    设计模式之组合模式
    设计模式之装饰者模式
    设计模式之适配器模式
  • 原文地址:https://www.cnblogs.com/brucezhang80/p/4177913.html
Copyright © 2011-2022 走看看