我有一个网站,我已经工作了大约一年了。
最近,它开始时不时地在我的开发机器中抛出 System.AccessViolationException,大多数情况下,当我离开机器时......
几周以来我没有对服务器代码进行任何更改,因为我一直在 100% 地处理 Javascript 部分,并且这个错误最近开始出现。
另外,我正在做的代码是 100% 托管的。我没有做任何互操作,调用奇怪的 DLL,什么也没有。它是纯 VB.Net,所以我不知道如何自己生成其中之一......
现在,我已经使用这台新机器几个月了,但它并不能 100% 正常工作。例如,每隔 2 或 3 天我就会出现蓝屏。我没有时间正确诊断它,但我怀疑我的 RAM 芯片可能有故障。
有故障的 RAM 是否有可能导致 AccessViolationException?
或者我有一个应该调查的实际问题吗? (除了我的内存)
UPDATE:
我真的无法找到错误发生的位置,真的。
我收到“未处理的异常,您想调试吗?”对话框,当我附加调试器时,我有线程列表,其中有所有 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)
有什么想法吗?
Thanks
Daniel