UWP:未指定的错误 - 来自 HRESULT 的异常:0x80004005

Posted

技术标签:

【中文标题】UWP:未指定的错误 - 来自 HRESULT 的异常:0x80004005【英文标题】:UWP: Unspecified Error - Exception from HRESULT: 0x80004005 【发布时间】:2020-11-18 06:40:41 【问题描述】:

我正在用 C# 开发一个 UWP 应用,并且我附加了一个未处理异常的处理程序,该处理程序向我们发送未处理的异常,以便我们可以诊断它们。

我收到了大量的

System.Exception - 未指定的错误(来自 HRESULT 的异常: 0x80004005)

没有任何堆栈跟踪或其他附加信息。

这在本地调试中从未发生过,但仅在真实用户的生产中发生,从未抱怨过这个问题,所以我猜这似乎是一个无声的错误,可能不会影响用户。

不管怎样,让这个问题得不到解决,我有点不安。

我怎样才能找到这个问题的罪魁祸首?

以前有人遇到过这个问题吗?

谢谢!

【问题讨论】:

您检查过 Windows 事件日志吗? 嗨@PavelAnikhouski,我检查了,显然没有检测到与此问题相关的事件 能否提供更详细的错误信息?是否可以内部构建日志? @Faywang-MSFT:这正是问题所在!!!该异常不提供任何其他信息,不提供详细信息,并且仅在用户机器的生产中偶尔发生!所以我们根本没有任何线索...... 嗨@Zilog80,感谢您的提示,好主意!实际上,报告此错误的大多数设备是具有 Wifi / 以太网连接的 PC。此外,我们的应用程序基本上不需要任何互联网连接,即使在PC离线时也可以完美运行(测试了无数次,也被很多用户测试过)。还有其他想法吗? 【参考方案1】:

在 Microsoft Support 上检查它,我发现 2 个关于 0x80004005 的引用非常不同。

第一个是关于 Windows XP Ativation,这表明 Windows 未正确激活 - 该消息在 Windows 10 上可能仍然相同,但 microsoft 页面不足以确认这一点。

另一个参考是关于来自 Windows 更新(在 Windows 10 上)的安全版本,它具有相同的错误代码(对于没有更新 KB3087040 的 PC);似乎更有可能。

【讨论】:

感谢您的信息,此更新 KB3087040 何时发布?有关于此更新的任何文档吗? 看,是的,在 microsoft.com 上(现在的问题是我来自巴西,所以每次我去 microsoft.com 时都会得到葡萄牙语链接,所以我没有知道如何展示给您,但这里是:support.microsoft.com/pt-br/topic/…) 我明白了。这是 2015 年的更新:我不确定它是否与我们在 2021 年的问题有关......此外,我们的应用程序需要 Windows 10 版本 2019+,所以我认为这个更新已经在 Windows 的主要更新中可用。跨度> 了解 - 我会看看我是否找到其他任何东西,但通常 0xNNNNNNNN 错误对 Microsoft 支持有一些描述,说明原因,有时错误只是不够具体 - 这个特别是我仅找到这 2 个参考(用于 Win XP 和 Win 10 Flash 安全性),但可能是其他在支持站点上没有适当文档或错误帖子的参考。我会继续寻找。 在微软论坛之外(来自appuals.com/solved-how-to-fix-error-0x80004005)提到这个错误是一个通用错误,我在这里引用:“错误 0x80004005 被翻译为未指定的错误,通常在用户无法访问共享文件夹、驱动器、虚拟机以及 Windows 更新无法安装时。”因此,Windows 文件、更新和其他已损坏或无法访问的系统依赖项确实存在任何错误。【参考方案2】:

如果没有适当的错误或异常,几乎不可能解决或尝试回答。

过去,当遇到类似问题(本地正常,开发正常,但生产失败)时,我和许多其他开发人员的解决方案是缩小范围并断言应用程序中哪里抛出了异常。

假设: 如果异常没有得到处理,我们应该会看到应用程序失败 - 可能它被封装在 catch 语句中。

首先,我们需要添加一些日志记录,您可以使用 log4net

如果假设正确 - 在您的应用程序中的每个 catch 语句中添加一个日志记录。取决于您的应用程序的规模 - 这需要一些时间来调试。

希望捕获和记录能够让您深入了解并解决您的问题。

还可以在资源被访问的地方添加日志记录。

【讨论】:

谢谢亚历克斯。我们已经使用 log4net 以及 2 个远程崩溃报告工具,称为 Raygun 和 Logify。问题是异常是一个存储异常,这意味着它来自 XAML 引擎或其他一些非托管代码。因此,我们无法在正常的 try-catch 中捕获它。此外,我们已经跟踪了异常,但它没有给出任何堆栈跟踪或任何其他消息,因此我提出了请求。

以上是关于UWP:未指定的错误 - 来自 HRESULT 的异常:0x80004005的主要内容,如果未能解决你的问题,请参考以下文章

错误异常大全:无法加载 DLL“ArcGISVersion.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

错误异常大全:无法加载 DLL“ArcGISVersion.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

AutoDesk Forge Inventor - 未指定错误(HRESULT 异常:0x80004005 (E_FAIL))

无法安装 UWP 应用:未指定的错误

uwp 语音识别

为啥 midiOutOpen 在 UWP 应用程序中返回 1(=未指定错误)?