Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 5
.NET 4.x

Ошибка во внешнем коде ".exception of type 'System.InvalidOperationException' occurred in mscorlib.dll"

24.11.2016, 08:35. Показов 3911. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Разрабатываю программу для импорта данных из SAP в локальную базу. Методы импорта вынесены в отдельные потоки.
Приложение крутится на сервере и по расписанию грузит данные. Все прекрасно работает, но во время простоя (когда программа уже ничего не импортирует) иногда приложение вылетает.
Важно то, что происходит это не всегда. В неделю два – три раза. Чтобы отловить ошибку запустил программу из студии:
Вот результат: см вложения






Как я понял, проблема не непосредственно в моем коде, а в mscorlib.dll
вот что студия выкинула в Output:

.....
.....'sg2015.vshost.exe' (CLR v4.0.30319: sg2015.vshost.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_M SIL\System.Transactions.resources\v4.0_4 .0.0.0_ru_b77a5c561934e089\System.Transa ctions.resources.dll'. Module was built without symbols.
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>htt p://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Необработан ное исключение</Description><AppDomain>sg2015.vshost.exe </AppDomain><Exception><ExceptionType>Syst em.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Коллекция была изменена; невозможно выполнить операцию перечисления.</Message><StackTrace> в System.ThrowHelper.ThrowInvalidOperation Exception(ExceptionResource resource)
в System.Collections.Generic.Dictionary`2. KeyCollection.Enumerator.MoveNext()
в SAP.Middleware.Connector.RfcSessionManag er.UpdateSessions(Object state)
в System.Threading.TimerQueueTimer.CallCal lbackInContext(Object state)
в System.Threading.ExecutionContext.RunInt ernal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(Ex ecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.TimerQueueTimer.CallCal lback()
в System.Threading.TimerQueueTimer.Fire()
в System.Threading.TimerQueue.FireNextTime rs()
в System.Threading.TimerQueue.AppDomainTim erCallback()</StackTrace><ExceptionString>System.InvalidOperationException: Коллекция была изменена; невозможно выполнить операцию перечисления.
в System.ThrowHelper.ThrowInvalidOperation Exception(ExceptionResource resource)
в System.Collections.Generic.Dictionary`2. KeyCollection.Enumerator.MoveNext()
в SAP.Middleware.Connector.RfcSessionManag er.UpdateSessions(Object state)
в System.Threading.TimerQueueTimer.CallCal lbackInContext(Object state)
в System.Threading.ExecutionContext.RunInt ernal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(Ex ecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.TimerQueueTimer.CallCal lback()
в System.Threading.TimerQueueTimer.Fire()
в System.Threading.TimerQueue.FireNextTime rs()
в System.Threading.TimerQueue.AppDomainTim erCallback()</ExceptionString></Exception></TraceRecord>
The program '[8776] sg2015.vshost.exe: Program Trace' has exited with code 0 (0x0).
The program '[8776] sg2015.vshost.exe' has exited with code 0 (0x0).


-----------------------
Собственно вопрос: что с этим делать? и как подступиться к проблеме? если проблема не в моем коде то как искать ошибку? С таким не сталкивался еще... Подскажите как действовать. Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2016, 08:35
Ответы с готовыми решениями:

Ошибка: An unhandled exception of type 'System.Data.OracleClient.OracleException' occurred in system.data.oracleclient.dll
а вы что хотите получить, уважаемый? кол-во выбранных записей, или какое-то конкретное значение?

Ошибка An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll
В программке VB.Net я использую некий ОСХ. При попытке обратиться к какой-т из функций ОСХ-а или поменять значение какой-то Property...

Ошибка An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
добовляю данные в таблицу .mdb (язык C#) string strSql='INSERT INTO tt (ID,F1,F2) VALUES(?,?,?)'; OleDbConnection cn = new...

9
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
24.11.2016, 08:54
Цитата Сообщение от sergey63 Посмотреть сообщение
Собственно вопрос: что с этим делать? и как подступиться к проблеме? если проблема не в моем коде то как искать ошибку? С таким не сталкивался еще... Подскажите как действовать. Спасибо!
Смотреть стек вызовов. У Вас по ходу поток изменил коллекцию когда она в другом потоке например перебиралась форич-ом. Ну это так предположение.
0
160 / 148 / 92
Регистрация: 30.03.2011
Сообщений: 569
24.11.2016, 10:08
Можете пояснить, что Вы понимаете под "время простоя" и как это выглядит в Вашем коде.
0
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 5
24.11.2016, 10:21  [ТС]
В программе есть Timer, который по расписанию запускает методы импорта данных из SAP, т.е.
в 9:00 грузим Справочник 1,
в 11:30 грузим Справочник 2,
в 15:00 грузим Операции и т.д. Время работы методов разное от 1 до 10 минут.
Между этими загрузками система простаивает. Можно вообще выключить таймер и запускать загрузки руками в нужное время. Простой это когда ничего не грузится и таймер ждет наступления нужного времени или выключен.
0
160 / 148 / 92
Регистрация: 30.03.2011
Сообщений: 569
24.11.2016, 10:27
А ошибка возникает при очередном запуске какого-то процесса?

Добавлено через 2 минуты
Еще один вопрос: сколько всего запускаемых методов?
0
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 5
24.11.2016, 10:38  [ТС]
-> А ошибка возникает при очередном запуске какого-то процесса?
нет! ошибка возникает, когда ничего не грузится, ни один метод (поток) не запущен !

-> Добавлено через 2 минуты
-> Еще один вопрос: сколько всего запускаемых методов?

Сам метод вообще один, он запускает разные загрузки в зависимости от входного параметра. В день этот метод отрабатывает примерно 10 - 20 раз. Одновременно два и более методов (потоков) не выполняются.
0
160 / 148 / 92
Регистрация: 30.03.2011
Сообщений: 569
24.11.2016, 10:44
Тогда еще вопрос: сколько разных входных параметров у метода?

Добавлено через 38 секунд
Сколько разных загрузок?
0
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 5
24.11.2016, 10:45  [ТС]
ава
Цитата Сообщение от MVK Посмотреть сообщение
Тогда еще вопрос: сколько разных входных параметров у метода?
около 10 разных
0
160 / 148 / 92
Регистрация: 30.03.2011
Сообщений: 569
24.11.2016, 10:53
Чтобы найти ошибку, разделите программу Timer на две, в которых будет вызываться по 5 разных методов. Вероятнее всего будет вылетать одна из двух Timer. Затем делите вылетающую еще на две и т.д. Так найдете какая загрузка "губит" и, возможно, от чего.
0
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 5
25.11.2016, 14:52  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Смотреть стек вызовов. У Вас по ходу поток изменил коллекцию когда она в другом потоке например перебиралась форич-ом. Ну это так предположение.
Касательно foreach, как возможной причины - я несколько раз проверял весь проект сразу как вылезла эта беда. Проверил еще раз. Все нормально! Какие еще действия в коде могут вызвать такую ошибку?
Вот что показывает стек вызовов:

OnUnhandledException - Коллекция была изменена; невозможно выполнить операцию перечисления.
Stack Trace:
в System.ThrowHelper.ThrowInvalidOperation Exception(ExceptionResource resource)
в System.Collections.Generic.Dictionary`2. KeyCollection.Enumerator.MoveNext()
в SAP.Middleware.Connector.RfcSessionManag er.UpdateSessions(Object state)
в System.Threading.TimerQueueTimer.CallCal lbackInContext(Object state)
в System.Threading.ExecutionContext.RunInt ernal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(Ex ecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.TimerQueueTimer.CallCal lback()
в System.Threading.TimerQueueTimer.Fire()
в System.Threading.TimerQueue.FireNextTime rs()
в System.Threading.TimerQueue.AppDomainTim erCallback()

ей богу не пойму, куда дальше копать....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2016, 14:52
Помогаю со студенческими работами здесь

Вылезает ошибка при отправке пакета: "A first chance exception of type 'System.Net.WebException' occurred in System.dll"
Код выглядит так. Function getsid(login As String, password As String) As String Dim token As String Dim user As...

Ошибка An unhandled exception of type 'System.NullReferenceException' occurred in GridModel.exe
Здравствуйте. Пытаюсь написать класс генерации таблицы для веб-страниц. Хедер таблицы строится по строкам, потом по столбцам, в DxCell...

Ошибка An unhandled exception of type 'System.NullReferenceException' occurred in WindowsFormsApplication1.exe
Есть квадратная матрица размера M, числа в которой можно ограничить в диапазон q от b. Затем же нужно её преобразовать чтобы все элементы...

Ошибка (Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll)
Необработанное исключение типа &quot;System.InvalidOperationException&quot; в mscorlib.dll Дополнительные сведения: Cannot read keys when either...

Ошибка нулевого значения объекта ("System.InvalidOperationException" в mscorlib.dll )
Всем привет. Вылетает ошибка при запаковке файла GZip'ом. При том нестабильно и нерегулярно. Проверьте плиз на своих машинах: using...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru