我的Windows服务不断崩溃并在两者之间停止。当我跟踪eventviewer日志时,我得到了以下信息。可能是什么原因?这是一个多线程服务应用程序。
Faulting application name: xxxxxxx.exe, version: 1.0.0.0, time stamp: 0x581b6c80
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7c8f9
Exception code: 0xc0000374
Fault offset: 0x00000000000c40f2
Faulting process id: 0x25b8
Faulting application start time: 0x01d238d4c9bd8587
Faulting application path: C:\Program Files\Application\Application.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 201eb89f-a4c8-11e6-89ad-64006a6629b4
异常代码0xc0000374
表示您正面临堆损坏。
这种错误的最常见原因是缓冲区溢出,当一个线程尝试读取某些内容而另一个线程同时删除了数据时。据我所知,这不应该发生在托管代码中。