c#调用,线程试图读取或写入一个它没有适当访问权限的虚拟地址



我们有一个用c#编写的应用程序在某个地方运行了几年。几年后,应用程序不时崩溃。它不会挂起,只是自动关闭。

我首先通过log4net将大量日志记录添加到一个文本文件中。通过这种方式,我发现应用程序在调用另一个类的方法时崩溃了。

log.Info("Class OPC - groupRead_DataChanged() - " + "beelden van inputname " + inputname + " op cameo zetten");
try
{
cameoControl1.Invoke(new Action(() => cameoControl1.AddCameras(CameraGrid)));
}
catch (Exception exc)
{
log.Info("Class OPC - groupRead_DataChanged() - " + "cameoControl1.Invoke werkte niet. " + exc);
log.Error("Class OPC - groupRead_DataChanged() - " + "cameoControl1.Invoke werkte niet. " + exc.Message);
log.Error("Class OPC - groupRead_DataChanged() - " + "cameoControl1.Invoke werkte niet. " + exc.InnerException);
log.Error("Class OPC - groupRead_DataChanged() - " + "cameoControl1.Invoke werkte niet. " + exc.Source);
log.Error("Class OPC - groupRead_DataChanged() - " + "cameoControl1.Invoke werkte niet. " + exc.StackTrace);
log.Error("Class OPC - groupRead_DataChanged() - " + "cameoControl1.Invoke werkte niet. " + exc.TargetSite);
}
log.Info("Class OPC - groupRead_DataChanged() - " + "beelden van inputname " + inputname + " staan nu op cameo 1");
}

日志文件显示&;beelden van inputname.....Op客串zetten"但是,什么也没有……它甚至没有到达catch中的日志。

我已经设置它在崩溃时创建转储文件,它给了我以下信息:

异常码:0xC0000005

异常信息:线程试图读取或写入a没有适当访问权限的虚拟地址

查了这个,我得出结论,有多种可能的原因:https://www.stellarinfo.com/blog/how-to-fix-error-code-0xc0000005-in-windows/

RAM可能是缺陷,磁盘错误,…我们有3台同样的电脑,安装了这个应用程序的变体。只有1有这些问题。所以我制作了另一个程序的映像,在故障的电脑上恢复了它,并在上面安装了正确的应用程序。

所以现在我在想,这真的是硬件缺陷吗?RAM缺陷是如何引起这种问题的?难道操作系统(Windows 10)不能解决这个问题吗?

在我的情况下,这种无声崩溃(在Minidump中查看)是由数据执行预防(DEP)和添加异常删除错误引起的。

随机访问者提醒-要小心,可能先浏览一下VirusTotal或类似的网站,你添加了什么例外

相关内容