首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Visual Studio中调试Windows服务?

如何在Visual Studio中调试Windows服务?
EN

Stack Overflow用户
提问于 2011-01-13 18:09:14
回答 16查看 110.9K关注 0票数 85

可以在Visual Studio中调试Windows服务吗?

我使用的代码如下

代码语言:javascript
运行
复制
System.Diagnostics.Debugger.Break();

但它给出了一些代码错误,如:

我收到两个事件错误: eventID 4096 VsJITDebugger和“服务没有及时响应启动或控制请求”。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2011-01-17 15:03:17

你也可以试试这个。

  1. 创建您的Windows服务并安装并启动…。也就是说,Windows服务必须在您的系统中运行。当您的服务正在运行时,请转到调试菜单,单击Attach Process (或旧Visual Studio中的process )
  2. 查找您正在运行的服务,然后确保已选中显示所有用户的进程显示所有会话中的进程,如果未选中,请选择它。

  1. 单击Attach按钮
  2. 单击OK
  3. 单击关闭
  4. 将断点设置到所需位置并等待执行。当您代码到达point.
  5. Remember,时,它将自动调试。将您的断点放在可达位置,如果它是onStart(),则停止并再次启动该服务

(经过大量的谷歌搜索,我在“如何在Visual Studio中调试Windows服务”中找到了这一点。)

票数 65
EN

Stack Overflow用户

发布于 2014-03-28 14:47:52

在服务OnStart方法中使用以下代码:

代码语言:javascript
运行
复制
System.Diagnostics.Debugger.Launch();

从弹出消息中选择Visual Studio选项。

注意:若要仅在调试模式下使用它,可以使用#if DEBUG编译器指令,如下所示。这将防止在生产服务器上以发布模式进行意外或调试。

代码语言:javascript
运行
复制
#if DEBUG
    System.Diagnostics.Debugger.Launch();
#endif
票数 125
EN

Stack Overflow用户

发布于 2011-01-13 18:11:14

您应该将服务项目中执行任务的所有代码分离到一个单独的项目中,然后生成一个可以正常运行和调试的测试应用程序。

服务项目将只是实现其服务部分所需的shell。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4678819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档