#c# #memory #memory-leaks
#c# #память #утечки памяти
Вопрос:
Я написал службу Windows, которая обрабатывает записи из базы данных и обновляет определенные направления бизнеса
Приложение, разработанное с использованием C # .NET
Я получаю ниже, который отображается в средстве просмотра событий
Ошибка приложения:
Faulting application name: MyService.WindowsService.exe, version: 1.0.19092.2, time stamp: 0x5ca328e2
Faulting module name: clrjit.dll, version: 4.7.3260.0, time stamp: 0x5bb7bb2d
Exception code: 0xc0000005
Fault offset: 0x00004a00
Faulting process id: 0x1c8c
Faulting application start time: 0x01d4ee42fa584c7d
Faulting application path: C:MyServiceWindowsService1.0.19092.2_1WindowsService.exe
Faulting module path: C:WindowsMicrosoft.NETFrameworkv4.0.30319clrjit.dll
Report Id: a4f89c01-ef37-41f5-abdf-d2c8c43d72d1
Faulting package full name:
Среда выполнения .Net:
Application: MyService.WindowsService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.OutOfMemoryException
at System.Threading.Monitor.ObjPulseAll(System.Object)
at System.Threading.Monitor.PulseAll(System.Object)
at Serilog.Sinks.PeriodicBatching.PortableTimer <OnTick>d__8.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore <>c.<ThrowAsync>b__6_1(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
Ошибка приложения:
Faulting application name: MyService.WindowsService.exe, version: 1.0.19092.2, time stamp: 0x5ca328e2
Faulting module name: clrjit.dll, version: 4.7.3260.0, time stamp: 0x5bb7bb2d
Exception code: 0xc0000005
Fault offset: 0x00004a00
Faulting process id: 0x15e8
Faulting application start time: 0x01d4edcca1fc92f8
Faulting application path: C:ServiceWindowsService1.0.19092.2_1MyService.WindowsService.exe
Faulting module path: C:WindowsMicrosoft.NETFrameworkv4.0.30319clrjit.dll
Report Id: b4f4f164-bdbd-4ed8-a076-b27fbda45927
Faulting package full name:
Среда выполнения .Net:
Application: MyService.WindowsService.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Как мне это отследить?
Комментарии:
1. Пожалуйста, просмотрите эту тему, поскольку она даст вам несколько советов по устранению вышеуказанной ошибки. social.msdn.microsoft.com/Forums/vstudio/en-US /…
2. Постарайтесь максимально реализовать IDisposable и утилизировать неиспользованные объекты либо с помощью оператора using(), либо установив для них значение null и вызвав GC . Collect() в надежде, что GC соберет их. Кроме того, иногда типы данных, которые мы используем, необходимо перепроверить. Вам действительно нужен float, где все, что вам нужно, это, например, unsigned int ?
3. Нам нужно будет посмотреть, как вы обрабатываете данные и как вы читаете из базы данных. Существует множество потенциальных причин перечисленных ошибок.