这个问题有点复杂。您可以随时回答您有问题的答案。
我有一项任务是在我们的几个组件的Windows异常情况下创建minidump,并支持XP SP3作为最小操作系统。组件包括:
要求是使用WER(从XP开始),但要将报告发送到专用供应商服务器而不是Microsoft当前的Winqual等效服务器。将报告功能包装在一个静态库中真的很不错。
但是有一些问题。 DLL是特殊的野兽。如果DLL代码中发生错误,如何生成报告?服务也可能需要一些特殊处理,我目前还没有意识到这一点。
首先,是否有一个已知的开源库可以帮助我完成这项任务?如果没有,我必须自己动手。
我的第一个想法是在我的每个模块中都有一个睡眠看门狗线程。该线程只等待一个事件,该事件将从unhandled exception filter设置。该线程将使用MiniDumpWriteDump生成报告,通过互联网发送然后完成,在提到的过滤器中我们将等待线程结束,然后终止该过程。对此解决方案有何看法?例如,本地系统帐户下的Windows服务可以访问互联网吗?
答案 0 :(得分:1)
您不需要创建“等待异常”的线程。使用UnhandledExceptionFilter注册您自己的异常处理程序。查看this URL,可以很好地解释当发生异常时如何使用MiniDumpWriteDump。
在本地系统凭据下运行的Windows服务无法访问网络。