是否有 .Net API 可供我将Windows 错误报告集成到我的应用程序中?
我最感兴趣的是启动错误报告,即使是我的应用程序中发生的非灾难性错误,我能找到的只是WIN32 API。
是否有 .Net API 可供我将Windows 错误报告集成到我的应用程序中?
我最感兴趣的是启动错误报告,即使是我的应用程序中发生的非灾难性错误,我能找到的只是WIN32 API。
这不太可能。WER 并不是供应用程序使用的,它是用户可以选择启用的东西,当他启用时,所有应用程序崩溃都将转换为 Windows 错误报告并发送到中央服务器。这不是您为单个应用程序打开和关闭的东西。您通过在用户启用了 WER 的计算机上崩溃来生成错误报告。
开发人员只需要注册,就可以获得有关其产品的崩溃信息。
来自http://msdn.microsoft.com/en-us/library/bb513641(VS.85).aspx
开发人员可以向 Windows Quality Online Services 注册,以获取有关客户在使用其应用程序时遇到的问题的信息,并帮助客户解决这些问题。开发人员还可以使用应用程序恢复和重启来确保客户在应用程序崩溃时不会丢失数据,并允许用户快速返回到他们的任务中。
如果您想在不崩溃的情况下生成报告,我相信您可以使用互操作来调用 WER api。
WER 团队在 Codeplex 上有一个项目;有一个托管服务 DLL 可从http://www.codeplex.com/wer/Release/ProjectReleases.aspx?ReleaseId=12825下载
您可以使用System.Diagnostics.EventLog
在我向微软提出的问题中,我得到了以下答案:
有关收集故障转储过程的更多信息,请查看以下 url。
msdn.microsoft.com/en-us/windows/hardware/gg487440.aspx blogs.msdn.com/b/wer/archive/2012/03/28/windows-hardware-dashboard-reports-faq.aspx http:// blogs.msdn.com/b/wer/archive/2009/03/16/faq.aspx
在那里我找到了这个示例:http ://www.microsoft.com/en-us/download/confirmation.aspx?id=29229 但它不起作用。现在我正在尝试解决问题。也许它对某人有用。
更新:我解决了这个问题。我遇到了 NTLM 授权问题:-)。
在这段代码之前:
string challenge = LiveIdAuthentication.GetChallengeFromServiceRequest(request.RequestUri.AbsoluteUri);
我已经添加了这个:
IWebProxy webProxy = WebRequest.DefaultWebProxy;
webProxy.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = webProxy;