Ошибка VB.NET COMException

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


person user29635    schedule 20.10.2008    source источник
comment
Можете ли вы показать свой код и дополнительную информацию об исключении COMException? В исключении должно быть хотя бы текстовое сообщение. Есть много причин для COMExecptions.   -  person Jan    schedule 20.10.2008


Ответы (1)


Похоже, ошибка связана с безопасностью. Если это волшебным образом происходит с новым пользователем через определенный период времени, я бы посмотрел на определения вашей пользовательской политики. Срок действия паролей истекает через определенный период времени? Есть ли у новых пользователей небольшие временные каталоги, которые заполняются в зависимости от использования вашего приложения (поэтому вызывают ошибки нехватки диска, которые маскируются как исключения COM)? Что это за стороннее приложение? Мы как бы не хватает деталей здесь. Но это некоторые вещи, чтобы начать смотреть.

person Nick    schedule 20.10.2008
comment
Приложение, которое я вызываю, — это программное обеспечение Bartender компании Seagull Scientific. Это приложение для печати этикеток. Мы используем его для доставки этикеток. Я не верю, что это проблема безопасности. Ваша идея с временным каталогом заслуживает внимания. Я подозреваю, что это какой-то процесс в Bartender, который вызывает это. - person user29635; 21.10.2008
comment
Я забыл добавить, что даже повышение пользователя до локального администратора не влияет на эту проблему. - person user29635; 21.10.2008