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

  • 相关阅读:
    小div在大div中垂直居中方式
    sublime中Vue高亮插件安装
    vue脚手架创建项目(推荐)
    搭建Vue脚手架
    html解决空格显示问题
    css3实现半圆和圆效果
    MySQL通过 LOAD DATA INFILE 批量导入数据
    jQuery ajax 提交表单图片
    Sqlserver风格规范
    前端代码风格规范总结
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7723197.html
Copyright © 2020-2023  润新知