Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 11
1
.NET 3.x

Обновление приложения и ошибка "System.Reflection.TargetInvocationException не обработано"

17.06.2014, 01:58. Показов 2880. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
(Сразу говорю - руки у меня кривоватые )

Взял код (а точнее архив с заготовкой) Updater'а из этой темы.
Добавив необходимую информацию, наткнулся на вот такое чудо


Кликните здесь для просмотра всего текста
System.Reflection.TargetInvocationException не обработано
Message=Адресат вызова создал исключение.
Source=mscorlib
StackTrace:
в System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
в System.Delegate.DynamicInvokeImpl(Object[] args)
в System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
в System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup( TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
в System.Windows.Forms.Control.InvokeMarshaledCallbacks()
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNat iveMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
в Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
в Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicat ionModel()
в Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
в WindowsApplication1.My.MyApplication.Main(String[] Args) в 17d14f5c-a337-4978-8281-53493378c1071.vb:строка 82
в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()
InnerException: System.IndexOutOfRangeException
Message=Индекс находился вне границ массива.
Source=mscorlib
StackTrace:
в System.Array.InternalGetReference(Void* elemRef, Int32 rank, Int32* pIndices)
в System.Array.GetValue(Int32 index)
в WindowsApplication1.Form1.DownloadClient_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e) в C:\Games\WindowsApplication1\Form1.vb:строка 71
InnerException:


Жалуется в общем на эту строку:
newSL.ServerHash_MD5 = ss.GetValue(1)
из кода:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub DownloadClient_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs) Handles DownloadClient.DownloadStringCompleted
        If Not e.Error Is Nothing Then
            Errorlog = Errorlog & e.Error.ToString & vbCrLf & "----------" & vbCrLf
            Exit Sub
        End If
        ' получаем массив строк
        For Each ostr As String In e.Result.Split(seprow, StringSplitOptions.RemoveEmptyEntries)
            Dim ss() As String = ostr.Split(sepcell, StringSplitOptions.RemoveEmptyEntries)
            Dim newSL As New StringList
            newSL.ServerPath = ss.GetValue(0)
            newSL.ServerHash_MD5 = ss.GetValue(1)
            newSL.LocalPath = Me.RootFolder & ss.GetValue(2)
            OriginString.Add(newSL)
        Next
        ' обрабатываем его, чтобы получить необходимое
        Add_LocalHashes_makeDirs()
        ' загружаем необходимые файлы
        If Me.ResultString.Count = 0 Then
            IsFileLoading = False
            Me.CurrentNum = 0
            Me.Text = "Обновление не найдено. У вас самая последняя версия сборки."
            Me.OriginString.Clear()
            Me.ResultString.Clear()
            Me.lblLocalPath.Text = String.Empty
            Me.lblServerPath.Text = String.Empty
        Else
            Me.BeginDownload(Me.CurrentNum)
        End If
    End Sub
Подскажите, что я делаю не так =)

P.S. Основной код не менял
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2014, 01:58
Ответы с готовыми решениями:

Необработанное исключение типа System.Reflection.TargetInvocationException
никак не могу понять в чем проблема, что не так. Хотел сделать добавление нового "сотрудника" в...

BackgroundWorker + GetFiles(., ., SearchOption.AllDirectories) = System.Reflection.TargetInvocationException
Сделал асинхронный метод, который контролируется BackgroundWorker и добавил в него поиск файла в...

Ошибка TargetInvocationException не обработано
Парни вот фрагмент когда, из-за чего может быть ошибка? if (k ==...

System.Reflection.TargetInvocationException: "Адресат вызова создал исключение."
Всем привет, столкнулся с такой проблемой, никогда раньше такого не было: в корне программы, а...

Необработанное исключение типа "System.Reflection.TargetInvocationException"
Добрых времени суток. Есть асинхронный сервер, к которому подулючается клиент, передает на серв...

9
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
17.06.2014, 09:10 2
Юпатов Дмитрий, прошу вас лечить своё детище
Permakov, чтобы сказать точнее, нужно копать глубже в коде, а навскидку - массив ss - пуст. Видимо ostr неправильно порезали Split'ом
0
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 11
17.06.2014, 11:03  [ТС] 3
Ладненько, щас посмотрю куда он ведет

Добавлено через 11 минут
ostr использует seprow из #Variables:
VB.NET
1
Dim seprow() As Char = {vbCr, vbLf} ' сепараторы для нарезки на строки
А также есть дополнительная строка, которая видимо отвечает за удаление (или игнорирование) "[cell]" из файла:
VB.NET
1
Dim sepcell() As String = {"[cell]"} ' сепаратор нарезки отдельных строк
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
17.06.2014, 11:16 4
Пробегитесь отладкой, может e.Result из строки 7 равно Nothing или пустой строке.
Есть метод для проверки этого: String.IsNullOrEmpty()
0
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 11
17.06.2014, 12:21  [ТС] 5
Все оказалось куда проще...
(Я использую DB, т.к. с FTP у меня обстоят дела куда сложнее). В SS сидела строка ошибки 502 с ссылкой на обьект.
Как только я заменил свою ссылку на ту что была в ошибке - она исчезла.

Далее...
Далее интереснее...

VB.NET
1
2
3
4
5
Private Sub BeginDownload(ByVal CN As Double)
        Me.IsFileLoading = True
        Me.Text = CurrentNum + 1 & "/" & Me.ResultString.Count
        Me.DownloadClient.DownloadFileAsync(New Uri(ResultString.Item(CN).ServerPath), ResultString.Item(CN).LocalPath)
    End Sub
Жалуется на ссылку (Uri). CN Объявлен только здесь.
Что определяет? Черт его знает =)
0
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
17.06.2014, 12:55 6
Цитата Сообщение от Permakov Посмотреть сообщение
Что определяет? Черт его знает =)
ну действительно. А теги xml к процедуре мы игнорим
<param name="CN">Порядковый номер файла в списке</param>
А вызывается процедура чуть выше (в моем коде строчек на 10).
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Юпатов Дмитрий, прошу вас лечить своё детище
Нет, щас совсем нету на это времени. Плюс, в той теме все подробно описано: что должно быть на сервере, какая структура файла с информацией об обновлениях... Я пример тестировал именно по тем данным, что потом указал.
В посте есть объяснение, что там и как работает. Вот на каком этапе ошибка идет?
файл upd загружается нормально?
Нарезается split-ами нормально?
Ну и т.д. неужели так сложно понатыкать месиджбоксов, чтобы эту информацию проверять по ходу работы.

Там просто пример, работающий в немного идеализированной сети (не блокирует файрволл, доступен сервер, где лежит информация...), отловом ошибок я тогда просто не занимался сильно. Человек, для которого это, в-основном и писалось, уже сам потом допиливал и обвешивал плюшками все это. А сам я этим именно примером и не пользуюсь в итоге, потому вычесанной версии не имею в данный момент. Будет время и желание - позанимаюсь. Так что не серчайте
0
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 11
17.06.2014, 14:54  [ТС] 7
upd принял.
Хеш читает, но только с сервера. (Локальная переменная LocalHash_MD5 равна "-1"
На сплиты вроде не жалуется

Добавлено через 2 минуты
Странно, что CN в ошибке равна 0.0. Это нормально? =)
0
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
17.06.2014, 15:36 8
Цитата Сообщение от Permakov Посмотреть сообщение
Хеш читает, но только с сервера. (Локальная переменная LocalHash_MD5 равна "-1"
Ну может просто локального файла с таким же именем нет?
Цитата Сообщение от Permakov Посмотреть сообщение
Странно, что CN в ошибке равна 0.0. Это нормально? =)
В начале так и должно быть.

Черт его знает, что оно там... я ж говорю - надо садиться и разбираться по новой.
0
0 / 0 / 0
Регистрация: 17.06.2014
Сообщений: 11
19.06.2014, 11:59  [ТС] 9
Проблема решена.

Добавил 2 переменные String и шпионил за действиями в Downloader'е.
Оказалось, что виновата первая ссылка (скачивание). Она выглядела вот так:
"/Folder/Readme.txt https:\\Ссылка"
Исправил.

Сам не пойму, как это произошло...
0
Юпатов Дмитрий
19.06.2014, 12:53     .NET 3.x Обновление приложения и ошибка "System.Reflection.TargetInvocationException не обработано"
  #10

Не по теме:

Бывает... а так код-то хоть и рабочий, но писался скорячком, без должного внимания к обработке ошибок.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2014, 12:53

Необработанное исключение типа "System.Reflection.TargetInvocationException" в mscorlib.dll
Пытался создать веб-сервис. Создал новый проект и решил запустить тот код, что был изначально в...

Необработанное исключение типа "System.Reflection.TargetInvocationException" в mscorlib.dll
Добрый день! Помогите разобраться возникает ошибка Необработанное исключение типа...

Ошибка System.Reflection.TargetInvocationException
Здравствуйте столкнулся с проблемой, когда пытаюсь получить значения из базы данных сталкиваюсь с...

Исключение не обработано System.Reflection.TargetInvocationException: "Адресат вызова создал исключение."
Не получается запустить проект, выдает исключение System.Reflection.TargetInvocationException:...

Исключение типа "System.Reflection.TargetInvocationException"
Необработанное исключение типа &quot;System.Reflection.TargetInvocationException&quot; в mscorlib.dll ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru