zoukankan      html  css  js  c++  java
  • C# Windows服务程序如何进行调试

    https://jingyan.baidu.com/article/456c463b18e1b00a583144b3.html

    本篇经验将和大家介绍在C# 中如何进行Windows服务程序调试,希望对大家的工作和学习有所帮助!

    工具/原料

    • 已编写好一个Windows服务程序

    附加到进程(不推荐)

    1. 1

      首先要对服务进行安装,然后启动服务,如下图所示:

      C# Windows服务程序如何进行调试
    2. 2

      打开VS项目,选择菜单 调试->附加到进程 选项,如下图所示:

      C# Windows服务程序如何进行调试
    3. 3

      选择服务进程(如果找不到可以勾选 显示所有用户进程 选项)就可以了,找到服务对应的exe程序,如下图所示:

      C# Windows服务程序如何进行调试
    4. 4

      在附加到进程的同时 OnStart 函数已经执行完毕,所以对 Onstart 无法调试。这个可以通过设置启动服务延时来加载调试,只需要在计时器Timer初始化的时候,传递一个参数即可,如下图所示:

      C# Windows服务程序如何进行调试
    5. 5

      注意:正常服务的启动时间为30秒左右,当服务启动时间超过30秒会报错!

      所以不要在OnStart中做过多的操作,也可以用这种延时的方法启动服务,以防在启动服务时超时。

      END

    修改源代码(推荐)

    1. 1

      找到服务主类中的OnStart方法,由

      protected override void OnStart(string[] args)

      {

        //todo something

      }

      修改成

      public void OnStart()

      {

         //todo something

      }

      如下图所示:

      C# Windows服务程序如何进行调试
    2. 2

      注释掉Program.cs文件中的如下代码:

      ServiceBase[] ServicesToRun;

      ServicesToRun = new ServiceBase[] 

      new Service1() 

      };

      ServiceBase.Run(ServicesToRun);

      修改成

      Service1 s1 = new Service1();

      s1.OnStart();

      如下图所示:

      C# Windows服务程序如何进行调试
    3. 3

      OnStart方法中利用F9打断点,然后按下F5就可以进行调试跟踪代码了,如下图所示:

      C# Windows服务程序如何进行调试
    4. 4

      注意:调试时,需要将先前启动的服务首先停止。程序代码编写调试完成后,记得将第1和2步骤的修改还原即可。

      END
    经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
  • 相关阅读:
    shiro
    leetcode696 C++ 36ms 计算二进制子串
    leetcode557 C++ 56ms 反转字符串中的每个单词
    leetcode657 C++ 16ms 判断回环
    leetcode709 C++ 4ms 转换成小写字母
    leetcode141 C++ 8ms 环形链表
    leetcode160 C++ 32ms 相交链表
    leetcode234 C++ 28ms 回文链表
    leetcode203 C++ 28ms 删除链表中满足条件的节点
    leetcode83 C++ 12ms 删除有序链表中的重复元素
  • 原文地址:https://www.cnblogs.com/sunny3158/p/14598696.html
Copyright © 2011-2022 走看看