zoukankan      html  css  js  c++  java
  • 调试windows服务最简单的方法之一

    http://item.jd.com/733388.html

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.ServiceProcess;
    using System.Text;
    
    namespace WindowsService1
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            static void Main()
            {
                Service1 s = new Service1();
    
                if (Environment.UserInteractive)
                {
                    s.DebugStart();
    
                    Console.ReadKey();
    
                    s.DebugStop();
                }
                else
                {
                    ServiceBase[] ServicesToRun;
                    ServicesToRun = new ServiceBase[] { s };
                    ServiceBase.Run(ServicesToRun);
                }
            }
        }
    }
    

      

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Linq;
    using System.ServiceProcess;
    using System.Text;
    
    namespace WindowsService1
    {
        public partial class Service1 : ServiceBase
        {
            public Service1()
            {
                InitializeComponent();
            }
    
            protected override void OnStart(string[] args)
            {
                this.ServiceStart();
            }
    
            protected override void OnStop()
            {
                this.ServiceStop();
            }
    
            internal void DebugStart()
            {
                this.ServiceStart();
            }
    
            internal void DebugStop()
            {
                this.ServiceStop();
            }
    
            private void ServiceStart()
            {
                // TODO:
    
            }
    
            private void ServiceStop()
            {
                // TODO:
            }
    
    
    
        }
    }

    关键就在对Environment.UserInteractive的判断上,

    请看MSDN上面的解释:

    获取一个值,用以指示当前进程是否在用户交互模式中运行。

    UserInteractive 属性为运行时无用户界面的 Windows 进程或一个服务(如 IIS)报告 false。 如果此属性为 false,请不要显示模式对话框或消息框,因为没有用来与用户进行交互的图形用户界面。

    http://msdn.microsoft.com/zh-cn/library/system.environment.userinteractive(v=VS.100).aspx

    然后看一下Service1.cs中的代码:

    最后:更改Project的输出类型

    右击该Project,点击Properties,在Application标签中,更改Output Type为Console Application。

    OK啦,按F5试试

    转载自http://www.cnblogs.com/builderman/archive/2011/06/14/2081045.html

  • 相关阅读:
    可以多个广告浮动的页面
    获取内容并截取长度用...替换
    用UIManager使Swing界面转换风格。
    Java FileInputStream
    win7 部署tomcat总结
    观察者模式
    Java RandomAccessFile
    Java 客户端界面功能:停止当前操作
    多线程的开启与管理
    log4j内容记录
  • 原文地址:https://www.cnblogs.com/jzzgci/p/4309340.html
Copyright © 2011-2022 走看看