У меня возникли проблемы с программным обеспечением, написанным моей компанией. Это сервер реального времени, работающий в качестве службы Windows, который использует RabbitMQ для взаимодействия с клиентом WebApplication / Silverlight. Неожиданно происходит сбой где-то между 10 минутами и 2 неделями после запуска службы. В программе просмотра событий приложения регистрируются 2 ошибки (я заменил имена классов и exe на XXX):
Источник: Ошибка приложения, Код события: 1000, Задача: (100)
Неисправное приложение XXX.exe, версия 0.0.1.18195, отметка времени
0x4e4a015e, неисправный модуль clr.dll, версия 4.0.30319.1, отметка времени
0x4ba21eeb, код исключения 0xc0000005, смещение ошибки
0x000000000018063e, идентификатор процесса 0x% 9, время запуска приложения 0x% 10.
и
Источник: .NET Runtime, Код события: 1023, Задача: Нет
Приложение: XXX.exe Framework Версия: v4.0.30319 Описание:
процесс был остановлен из-за внутренней ошибки .NET Runtime в
IP 000007FEF973063E (000007FEF95B0000) с кодом выхода 80131506.
И выдается следующее исключение. Кажется, что возникают проблемы с итерацией по основному массиву списка, как это может быть нулевым, вне меня.
XXX`1 [XXX]; Исключение: System.NullReferenceException: объект
ссылка не установлена на экземпляр объекта. в
System.Collections.Generic.List`1.Enumerator.MoveNext () в
System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext () в
System.Collections.Generic.List`1.InsertRange (индекс Int32,
IEnumerable`1 коллекция)
Я попытался подключить ADPlus к сервису, но он замедляет его настолько, что его невозможно использовать. Поскольку доктора Ватсона больше нет в наличии, сложно получить дамп памяти, может ли кто-нибудь порекомендовать какие-либо другие инструменты, которые не слишком сильно повлияют на производительность?
Кто-нибудь видел что-нибудь подобное раньше?