【问题标题】:VB.NET COMException ErrorVB.NET COMException 错误
【发布时间】:2015-09-01 10:26:45
【问题描述】:

我使用 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 对象。因为我对它进行了很多调用,所以我让它保持活动状态直到应用程序关闭。

【问题讨论】:

  • 您能提供您的代码并提供有关 COMException 的更多信息吗?异常中至少应该有一条短信。 COMExecptions 的原因有很多。

标签: vb.net comexception


【解决方案1】:

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

【讨论】:

  • 我调用的应用程序是 Seagull Scientific 的 Bartender 软件。它是一个标签打印应用程序。我们将其用于运输标签。我不认为这是一个安全问题。您的临时目录想法值得追求。我怀疑是调酒师中的某个过程导致了这种情况。
  • 我忘了补充一点,即使将用户提升为本地管理员也对这个问题没有影响。
猜你喜欢
  • 2012-12-15
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 2016-10-13
相关资源
最近更新 更多