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

    先看一下这段启动代码:

    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);
    }
    }
    }
    }

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

    请看MSDN上面的解释:

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

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

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

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

    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:
    }



    }
    }

    最后:更改Project的输出类型

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

    OK啦,按F5试试

  • 相关阅读:
    利用js在Table中追加数据
    C#API配置跨域
    C#linq查询DataTable
    erlang格式化输出
    erlang 的源代码保护机制
    MP3格式音频文件结构解析
    使用异步 I/O 大大提高应用程序的性能
    虚拟机安装mac 关键是换引导
    C/C++规则整理
    字节对齐
  • 原文地址:https://www.cnblogs.com/builderman/p/2081045.html
Copyright © 2011-2022 走看看