我正在用C#开发一个UWP应用,并且为未处理的异常附加了处理程序,该处理程序向我们发送了未处理的异常,以便我们可以对其进行诊断。)
我收到很多
System.Exception-未指定的错误(HRESULT的异常: 0x80004005)
没有任何堆栈跟踪或其他任何信息。
这在调试中从未在本地发生,而只是在真正的用户的生产环境中,从来没有抱怨过这个问题,所以我想这似乎是一个无声的错误,可能不会影响用户。
无论如何,对于解决这个问题,我有些不安。
如何找到此问题的罪魁祸首?
以前有没有人碰到过这个问题?
谢谢!
答案 0 :(得分:0)
在 Microsoft 支持上检查它,我发现 2 个关于 0x80004005 的参考文献非常不同。
第一个是关于 Windows XP Ativation,这表明 Windows 未正确激活 - 该消息在 Windows 10 上可能仍然相同,但微软页面不足以证实这一点。
另一个参考是关于 Windows 更新(在 Windows 10 上)的安全版本,该版本具有相同的错误代码(对于没有更新 KB3087040 的 PC);似乎更有可能。
答案 1 :(得分:0)
如果没有正确的错误或异常,解决或尝试回答几乎是不可能的。
过去,当遇到类似问题(本地正常、开发正常但生产失败)时,我和许多其他开发人员的解决方案是缩小范围并断言应用程序中抛出异常的位置。
假设:
如果异常没有得到处理,我们应该会看到应用失败——它可能被封装在一个 catch
语句中。
首先,我们需要添加一些日志,您可以使用 log4net
如果假设是正确的 - 在您的应用中的每个 catch
语句中添加一个日志记录。取决于您的应用的规模 - 这需要一些时间来调试。
希望捕获和记录能让您深入了解并解决您的问题。
还可以在访问资源的位置添加日志记录。