1

我使用 MS Visual Studio 2005 在 VB.NET 中编写了一个应用程序。我使用的是 .NET 版本“2.0.50727”。直到最近,该应用程序一直在正常运行。使用一段时间后,它开始产生System.Runtime.InteropServices.COMException error (80080005). 当我调用生成另一个外部应用程序的实例时会发生错误。一旦发生此错误,它就永远不会消失,每次打开我的应用程序时都会发生。此错误破坏了我的程序的功能,因为它依赖于它正在调用的第二个应用程序。

我不确定是什么导致了这个错误的发生,但我知道它是用户特定的,而不是应用程序。它似乎发生在用户的 Windows 配置文件中。我可以在同一台机器上使用不同的用户,或者为有问题的用户创建一个新的配置文件,程序将在一段时间内正常工作。最终(几周内)错误将返回并一直存在,直到我再次解决它。我正在尝试调试 COM 错误以了解为什么会发生这种情况,但这是一种奇怪的行为,我不知道从哪里开始。我从未见过将自身连接到配置文件并导致其持久存在的错误。

我没有很多 .NET 经验,但我做过很多 VB 6 应用程序编程。请提出您的任何建议。非常感谢您的帮助。

这是发生错误的代码块:

Public Class frmMain

Public btApp As BarTender.Application

Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Try

    btApp = New BarTender.Application

Catch COMex As Runtime.InteropServices.COMException

    MessageBox.Show("Error " + COMex.ErrorCode.ToString() + ": " + COMex.Message)

End Try

我在我的 frmMain.vb 表单(要加载的第一个表单)的顶部声明了变量。我在第一个表单加载时加载 COM 对象。我让它保持活动状态,直到应用程序关闭,因为我对它进行了很多调用。

4

1 回答 1

1

听起来错误与安全相关。它在一段时间后神奇地发生在新用户身上,我会看看你的用户策略定义。密码会在一段时间后过期吗?新用户是否有根据您的应用程序使用情况而填满的小型临时目录(因此导致被屏蔽为 COM 异常的磁盘错误)?这个第三方应用程序是什么?我们在这里有点缺乏细节。但这些都是开始研究的事情。

于 2008-10-20T15:22:30.270 回答