介绍 git
Windows服务应用程序是一种须要长期运行的应用程序,它对于服务器环境特别适合。它没有用户界面,而且也不会产生任何可视输出。任何用户消息都会被写进Windows事件日志。计算机启动时,服务会自动开始运行。它们不要用户必定登陆才运行,它们能在包括这个系统内的任何用户环境下运行。经过服务控制管理器,Windows服务是可控的,能够终止、暂停及当须要时启动。github
这里我就不演示如何建立一个Windows服务了,一般咱们在写windows服务的时候遇到的最大问题就是如何调试Windows服务,最经常使用的方式是附加到进程,可这种方式不方便的地方是每次都要附加,很是麻烦,因此我推荐下面一种方式,用控制台来调试Windows服务,具体操做起来也很是简单。windows
正文 服务器
首先将项目设置为,控制台应用程序,点击项目属性,将输出类型设置为“控制台应用程序”,以下图。this
接下来,把一下这段代码,主要创建控制台调用的启动和中止服务的方法,复制到Service.cs (就是你本身建的Service中)。url
#if DEBUG /// <summary> /// 调试用 /// </summary> /// <param name="args"></param> public void Start(string[] args) { this.OnStart(args); } public void Stop() { this.OnStop(); } #endif
下一步,把下面这段代码复制到解决方案根目录下的,Programs中。spa
#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服务当成一个控制台程序来调试了,固然在发布服务的时候仍是要把输出类型改回来的。调试