vb.net - 由于 RAM 故障,是否会发生 System.AccessViolationException?

标签 vb.net memory access-violation ram

我有一个网站,我已经工作了大约一年了。 最近,在我的开发机器中,它开始时不时地抛出 System.AccessViolationException,大多数情况下,当我离开机器时......

我已经好几周没有对服务器代码进行任何更改了,因为我一直在 100% 地处理 Javascript 部分,并且这个错误最近开始出现。

此外,我正在编写的代码是 100% 托管的。我没有做任何互操作,调用奇怪的 DLL,什么也没有。它是纯 VB.Net,所以我不知道如何自己生成其中之一......

现在,我已经使用这台新机器几个月了,但它并不能 100% 正常工作。例如,每隔 2 或 3 天我就会出现蓝屏。我还没有时间正确诊断它,但我怀疑我的 RAM 芯片可能有故障。

RAM 故障是否可能导致 AccessViolationException?
或者我有一个应该调查的实际问题吗? (除了我的内存)

<小时/>

更新:

我真的无法找到错误发生的位置。
我收到“未处理的异常,您想调试吗?”对话框,当我附加调试器时,我有线程列表,其中有所有 ASP.Net 线程,以及我自己创建的 3 个线程。
对于这 3 个,我有一个 Call Stack ,它们都在 Sleep() 调用处停止(这是预期的)。
对于所有其他线程,包括 VS 指出的问题线程,我没有调用堆栈。我也没有任何有关异常的详细信息。

所以我不知道它是否每次都发生在同一个地方。

至于memtest,是的,我要做类似的事情,我只是希望尽快有一些时间来做这件事,但同时我想知道这是否可以解释这个问题。

<小时/>

更新2:

在事件日志中找到此内容...

发生未处理的异常,进程被终止。

Application ID: DefaultDomain    
Process ID: 6632    
Exception: System.AccessViolationException

Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

StackTrace:    at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

有什么想法吗?
谢谢
丹尼尔

最佳答案

RAM 故障是否可能导致 AccessViolationException?

是的,这是可能的。如果进程的底层内存行为不符合预期,那么它可能会导致许多不同类型的应用程序错误,包括 AccessViolationException。

有故障的 RAM 是否可能导致 AccessViolationException?

我想说,更有可能的是您调用的程序或库中存在错误。不过,第一步是找出发生 AccessViolationException 的原因,或更重要的是找出发生的位置。尝试附加一个调试器,在 AccessViolationExceptions 上中断并查看实际发生的情况。

Ben S 的建议也是快速排除 RAM 情况的一个好建议。

关于vb.net - 由于 RAM 故障,是否会发生 System.AccessViolationException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1444844/

相关文章:

.net - <Out()>属性。服务的目的是什么?

c++ - 使用 `std::shared_ptr` 时有效地节省内存/编程

c - 加载dll时访问冲突

c - Parser.exe 中的 (ntdll.dll) 抛出异常 : Access violation reading location

vb.net - 调用函数 vb.net 时 mybase.load 停止加载

vb.net - 如何动态调用函数

java - 如何使用长内存地址调用 Java 方法?

c++ - 结构内存分配中的 char*

c++ - 从其他类调用此方法会创建违规阅读

vb.net - 我想在调用函数返回错误时控制错误消息