我使用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对象。我将它保持活动状态直到应用程序关闭,因为我对它进行了很多调用。
答案 0 :(得分:1)
听起来这个错误与安全性有关。它会在一段时间后神奇地发生在新用户身上,我会查看您的用户策略定义。密码会在一段时间后过期吗?新用户是否具有根据应用程序使用情况填满的小临时目录(因此导致磁盘错误被掩盖为COM异常)?这个第三方申请是什么?我们在这里的细节很简短。但这些是开始关注的一些事情。