调试服务

  1. 在调试配置中生成你的服务。

  2. 安装你的服务。

  3. 从 “服务控制管理器”、“服务器资源管理器”或代码启动服务。

  4. 使用管理凭据启动 Visual Studio,那么你就能附加到系统进程。

  5. (可选)在 Visual Studio 菜单栏上,选择“工具”、“选项” 。 在“选项”对话框中,选择“调试”、“符号”,选择“Microsoft 符号服务器”复选框,然后选择“确定”按钮 。

  6. 在菜单栏上,从“调试” 或“工具” 菜单选择“附加到进程” 。 (键盘:Ctrl+Alt+P)

    这将显示“进程” 对话框。

  7. 选择“显示所有用户的进程”复选框 。

  8. 在“可用进程” 部分,为服务选择进程,然后选择“附加” 。

    提示

    该进程的名称将与你的服务的可执行文件相同。

    出现 “附加到进程” 对话框。

  9. 选择相应的选项,然后选择“确定” 以关闭对话框。

    备注

    你现在处于调试模式。

  10. 设置任意你想要在代码中使用的断点。

  11. 访问服务控制管理器并操作你的服务,发送停止、暂停和继续命令以命中你的断点。 有关运行服务控制管理器的详细信息,请参阅如何:启动服务。 请参见疑难解答:调试 Windows 服务。

Windows 服务的调试提示

附加到服务的进程使你可调试该服务的大多数代码,但不是全部。 例如,由于服务已经启动,你无法调试服务的 OnStart 方法中的代码或 Main 方法中用于在此处加载服务的代码。 避免这种限制的一种方法是在你的仅用于辅助调试的服务应用程序中创建一个临时辅助服务。 你可以安装两个服务,然后启动该虚拟服务来加载服务进程。 临时服务启动进程后,可以使用 Visual Studio 中的 “调试”菜单来附加到服务进程。

尝试添加对 Sleep 方法的调用延迟操作,直到你能够附加到该进程。

尝试更改常规控制台应用程序的程序。 为此,请按如下所示重写 Main 方法,这样它可以作为 Windows 服务和控制台应用程序运行,具体取决于启动方式。

如何:将 Windows 服务作为控制台应用运行

  1. 向你运行 OnStart 和 OnStop 方法的服务添加一个方法:

    C#复制
    internal void TestStartupAndStop(string[] args) { this.OnStart(args); Console.ReadLine(); this.OnStop(); } 
  2. 按如下所示重写 Main 方法:

    C#复制
    static void Main(string[] args) { if (Environment.UserInteractive) { MyNewService service1 = new MyNewService(args); service1.TestStartupAndStop(args); } else { // Put the body of your old Main method here. } } 
  3. 在项目属性的“应用程序” 选项卡中,将“输出类型” 设置为“控制台应用程序” 。

  4. 选择“启动调试” (F5)。

  5. 若要将该程序再次作为 Windows 服务运行,请安装它并像通常启动 Windows 服务一样启动它。 不必恢复这些更改。

在某些情况下,你必须使用 Windows 调试器,比如当你想要调试仅在系统启动时发生的问题时。 下载 Windows 驱动程序工具包 (WDK),并查看如何调试 Windows 服务。

转载于:https://www.cnblogs.com/sky-jyq/p/11540303.html

调试windows服务相关推荐

  1. Windows服务二:测试新建的服务、调试Windows服务

    一.测试Windows服务 为了使Windows服务程序能够正常运行,我们需要像创建一般应用程序那样为它创建一个程序的入口点.像其他应用程序一样,Windows服务也是在Program.cs的Main ...

  2. 使用C#调试Windows服务模板项目

    目录 介绍 特征 准备此应用程序的步骤如下 1.创建Windows服务项目 2.将项目输出类型从Windows应用程序更改为控制台应用程序 3.安装log4net包 4.配置log4net 5.添加S ...

  3. Windows服务的创建、安装、调试

    1:新建一个WINDOWS服务项目: 2:打开自动生成的Server1的源代码,可以在其中看到OnStart与OnStop方法,代表的是服务的启动与关闭: 3:将事件日志中的写日志的方法COPY到Se ...

  4. Windows服务的快速搭建与调试(C#图解)

    目录 一.什么是Windows 服务? 二.创建Windows 服务与安装/卸载批处理. 三.调试Windows 服务. 正文 一.什么是Windows 服务? 答:Microsoft Windows ...

  5. C#制作Windows service服务系列二:演示一个定期执行的windows服务及调试(windows service)(转载)...

    系列一: 制作一个可安装.可启动.可停止.可卸载的Windows service(downmoon原创) 系列二:演示一个定期执行的windows服务及调试(windows service)(down ...

  6. 如何使用VS+C#创建,优雅自动化的安装(不使用命令行),调试,更新Windows服务

    轻量级,即是服务部署器,又是服务本体,免命令行,免bat.直接部署和调试代码的东西,也就长这样了. 看这一篇文章应该可以把你构建和调试windows服务这些事儿玩儿转. 一.创建服务 1.可以打开VS ...

  7. 用.NET创建Windows服务

    用.NET创建Windows服务 译者说明:我是通过翻译来学习C#的,文中涉及到的有Visual Studio.NET有关操作,我都根据中文版的VS.NET显示信息来处理的,可以让大家不致有误解. 作 ...

  8. Windows 服务入门指南

    有很多时候,我们需要创建Windows Service. 这篇文章可以算是一个入门指南吧,希望对初学者有帮助. 要创建Windows Service, 首先选择Windows服务项目,如下图: 这里我 ...

  9. 演练:在组件设计器中创建 Windows 服务应用程序

    http://msdn.microsoft.com/zh-cn/library/zt39148a(v=vs.80).aspx 演练:在组件设计器中创建 Windows 服务应用程序 .NET Fram ...

最新文章

  1. 读书:历史 -- 东印度公司
  2. 刚回到北京,倒时差中……
  3. linux查看并发连接数
  4. 搜索文献_【大牛经验分享】如何高效快捷搜索文献?
  5. 我的第一本算法书(图解算法)——什么是二叉查找树
  6. PHP Object对象转换为Array数组
  7. 数据结构C语言版之线性表
  8. 《.Net 软件设计新思维》作者讲述成书的背后故事
  9. Pytorch——Tensor合并+截取+拼接
  10. 免费数据恢复软件恢复SanDisk丢失的资料
  11. 新浪微博登陆uchome
  12. 教你用GoldWave进行基础的混音准备
  13. Java使用map接收时间格式是Wed Sep 14 00:00:00 CST 2022这种解决办法
  14. 【线性代数笔记】关于两个矩阵相乘等于零矩阵(AB=O)
  15. 基于Proteus学习单片机系列(九)——DA转换及其应用--TLC5615
  16. MarkDown中使用gif的神器:LICEcap
  17. 携职教育:个税APP申报流程
  18. VC++开发垃圾文件清理软件之三:程序的界面设计与实现----对话框界面
  19. Linux系统引导过程及引导修复.
  20. c++中的负数取整问题

热门文章

  1. 7个相同小球4个不同盒子_【计算启蒙】4个游戏陪娃玩懂“数拆分”,加减法都不用愁!...
  2. S3C2410 bootloader ----VIVI阅读笔记 (转)下
  3. tcp的3次握手4次挥手
  4. python-面向对象编程设计与开发
  5. JS容易犯错的this和作用域
  6. iOS--viewController
  7. [翻译] ABCIntroView
  8. 计算机科学之前说,国内计算机科学十强大学是哪些?前2名没悬念,后面几所都不好说...
  9. python的代码在哪写_python代码在哪里编写
  10. 订单生产计划表范本_工厂生产管理为什么需要ERP软件?