Я написал приложение в VB.NET, используя MS Visual Studio 2005. Я использую .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-объект, когда загружается первая форма. Я оставляю его активным до тех пор, пока приложение не закроется, потому что я много звоню ему.