Azure Artifact Signing是否影响WER崩溃日志收集?求.NET Core FailFast日志方案
Windows桌面应用WER崩溃信息收集与Environment.FailFast()日志获取问题
一、Azure短有效期签名证书会不会导致WER收不到崩溃信息?
大概率是这个原因。
WER匹配崩溃应用和Partner Center里的应用时,认的是证书的指纹(Thumbprint),不是光看CN这些字段。Azure Artifact Signing的短有效期证书每次轮换后,指纹都会变,但你只在Partner Center提交过初始的证书信息,新证书没同步过去,WER就识别不出这个崩溃的应用属于你的账户,自然不会把信息推给你。
解决办法:
- 每次Azure生成新的签名证书后,都要同步上传到Microsoft Partner Center,确保所有用来签应用的证书都在平台备过案。
- 看看Partner Center有没有批量导入或者API自动同步证书的功能,能省不少手动操作的麻烦。
二、业内怎么从客户机拿Environment.FailFast()的日志?
Environment.FailFast()会直接杀进程,绕开常规的.NET异常处理,得用专门的办法:
- 取本地WER日志:客户端的WER日志存在
C:\ProgramData\Microsoft\Windows\WER\ReportArchive和C:\ProgramData\Microsoft\Windows\WER\ReportQueue里,可以让用户导出这些文件发过来,或者做个小工具自动收集上传。 - 自定义崩溃捕获:
- 注册
AppDomain.UnhandledException事件虽然抓不到FailFast,但可以结合Win32 API的SetUnhandledExceptionFilter,在进程终止前把关键信息写到本地文件或者直接上报服务器。 - 用成熟的原生崩溃捕获库,比如Google的Breakpad、Crashpad,这些库能直接抓进程级的崩溃,包括
FailFast导致的终止,生成dump文件还能自定义上报逻辑。
- 注册
- 查Windows事件日志:
FailFast会在事件查看器的“Windows日志->应用程序”里生成ID为1026的错误记录,应用可以读取这些条目上报。 - 配置生成Mini Dump:改注册表或者应用配置,让WER给你的应用生成Mini Dump文件,之后用调试工具分析dump就能拿到崩溃上下文。
内容的提问来源于stack exchange,提问作者Thomas Woelfer
相关产品推荐
相关产品推荐

