我有一个网站,我已经工作了大约一年了。最近,它开始时不时地抛出 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)
有什么想法吗?
谢谢
丹尼尔