加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

winforms – Windows服务的运行时调试技巧?

发布时间:2021-02-07 19:03:56 所属栏目:系统 来源:网络整理
导读:我有一个 Windows服务,监视连接到供应商硬件的COM端口.这是一个非常繁忙的硬件,它不断轮询线路上的其他设备(这是一个双绞线RS485“网络”).我的软件需要在这条线路上模拟X个硬件设备,所以我有一个多线程的东西正在进行多层状态机,以便随时跟踪通信协议的位置

我有一个 Windows服务,监视连接到供应商硬件的COM端口.这是一个非常繁忙的硬件,它不断轮询线路上的其他设备(这是一个双绞线RS485“网络”).我的软件需要在这条线路上模拟X个硬件设备,所以我有一个多线程的东西正在进行多层状态机,以便随时跟踪通信协议的位置.

问题是Windows服务(这是我的第一个,BTW)是你需要一些调试来让你知道东西是否正常工作.当我第一次开发这个状态机/多线程代码时,我有一个带有RichTextBox的Windows窗体,它显示了在行上向后移动的ASCII字符.好像我不能真正拥有服务的GUI友好.我尝试通过另一个程序在服务中打开一个表单,该程序发送通过OnCustomCommand()处理程序接收的服务消息,但它似乎不起作用.我检查了“允许服务与桌面交互”和所有内容.我正在使用调试表单的Show()和Hide()方法.

我想我不需要看到所有的个人角色都在线上,但男人肯定会很好(我想我真的需要看到它们:-)).那么有没有人有任何可以帮助我的疯狂想法?我不想让系统陷入困境,因为某些IPC并不适合那些肯定会通过的大量数据.它只是非常短期的调试,只是确认程序,RS485到USB加密狗和硬件都在工作.

解决方法

使用 OutputDebugString写入调试缓冲区,然后使用 DebugView进行监视.如果您在Windows XP或更早版本上运行,则可以使用 PortMon查看通过串行端口的原始字节.与日志文件相比,优势在于开销非常小,特别是在您不看时.您甚至可以从另一台计算机运行DebugView并远程监控您的服务.

(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读