2

我有一个 VB.NET 2.0 可执行文件,我每天用它来创建大量 Excel 文件。到目前为止,它一直在安装了 Office 2007(并使用 Office 2007 Interop)的 XP 机器上运行。它多年来一直运行良好。

最近,该机器出现故障,它已升级到 Windows 7 机器,也运行 Office 2007。之后,我开始在代码中的随机点处的 SaveAs 函数中出现间歇性错误。

这意味着有时根本不会发生错误。代码运行得很好。但有时它发生在(例如)它试图另存为的第 20 个文件上(有许多文件包含由多个循环创建的多种不同类型的数据)。然后有时它发生在(例如)第 50 个文件上。

它在几乎所有方面都是完全随机的。我似乎无法追踪它。

我尝试了一些解决方案,包括在这里找到的一个:System.Runtime.InteropServices.COMException (0x800A03EC)

...即使该答案适用于 Office Interop 2003(不是 2007)。我还尝试删除文件名路径中的文件扩展名(这是另一个站点的建议)。我在 SaveAs 函数中使用的唯一其他参数是 FileFormat(我设置为 Excel8)。我看过一些关于安全问题的帖子,但我不明白这怎么可能是一个安全问题,因为它不会每次都发生。我真的不知道可能导致这种情况的原因。自 XP 框以来,代码没有更改。在这种情况下,唯一的区别是运行代码的操作系统(以及新盒子是 64 位的事实)。

WATYF

4

0 回答 0