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试试

  • 相关阅读:
    Python画图代码
    关于meshgrid和numpy.c_以及numpy.r_
    Reshape以及向量机分类学习和等高线绘制代码
    Python中的数组和list
    关于透视图和等高线
    Iris花逻辑回归与实现
    Crowd安装和破解
    Confluence搭建
    基于搜狗微信搜索获取公众号文章的阅读量及点赞量
    PHP中使用cURL实现Get和Post请求的方法
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7723197.html
Copyright © 2011-2022 走看看