是否有一个.Net的API,我可以将Windows错误报告集成到我的应用程序?
即使对于在我的应用程序中发生的非灾难性错误,我最感兴趣的是启动错误报告,所有我能find的都是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
在我对微软的问题上,我得到了以下答案:
请查看以下网址以获取有关收集崩溃转储过程的更多信息。
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;