【问题标题】:Debugging Windows Services while starting启动时调试 Windows 服务
【发布时间】:2015-06-05 05:08:59
【问题描述】:

如何在 Windows 服务启动时对其进行调试?

我有一个 Windows 服务即将启动,我添加了所有我可以添加的日志,但在幕后(已安装的服务和 Windows 之间)发生了一些我看不到的事情(据我所知)。

我不是在这里寻找代码调试,而是在服务和 Windows 之间寻找 windows 消息,但我在事件日志中找不到任何消息,也许我需要打开它?

我在想,windows 字里行间的东西认为我的服务是病毒,或者 windows 无法通过名称连接到我的服务,诸如此类。

有谁知道我如何在事件查看器或类似设备上看到此类信息?

【问题讨论】:

    标签: windows service windows-messages event-viewer


    【解决方案1】:

    Windows 服务的调试非常具有挑战性,因为它们在会话 0 中运行,无法进行桌面和用户交互。

    调试服务的一种方法是使用 windbg 设置远程调试会话,如 here 所述。

    另一种方法是使用我的 winsvcdiag 工具,它应该使过程更简单,并且可以从 VS 进行调试:https://lowleveldesign.wordpress.com/2015/06/22/how-to-debug-windows-services-written-in-net-part-ii/

    我不确定您想查看哪种类型的事件日志。当 Windows 服务失败时,系统日志中通常会显示一条简短消息。您可以随时查看process monitor 是否为您的服务报告任何错误。

    【讨论】:

    • 感谢@lowleveldesign 我查看了链接,它们非常有帮助,不幸的是我仍然无法弄清楚服务启动和停止的原因,我猜这与Windows进程有关它发生在我的日志记录甚至开始我做的第一件事之前
    • @Icaro 你试过进程监视器吗?那里有一个工具-> 进程树对话框。找到您的进程,然后右键单击并选择按此进程过滤事件。您是否看到任何可疑结果,例如 ACCESS DENIED?如果您需要帮助,可以分享收集到的跟踪信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多