我有一个网站,我已经工作一年了。
最近,它开始不时地抛出System.AccessViolationException,在我的开发人员机器中,主要是在我离开机器时…
几个星期以来,我没有更改服务器代码上的任何内容,因为我一直在100%地研究javascript部分,并且这个错误最近开始出现。
另外,我正在做的代码是100%管理的。我没有做任何互操作,调用奇怪的DLL,什么都没有。它是纯vb.net,所以我不知道如何自己生成其中一个…
现在,我用这台新机器已经有几个月了,它不能100%正常工作。例如,每2到3天,我就会得到一个蓝屏。我没有时间正确地诊断它,但我怀疑我可能有故障的RAM芯片。
故障RAM是否可能导致访问违规异常?
或者我有一个我应该调查的实际问题吗?(除了我的公羊)
更新:
我真的找不到错误发生的地方。
我得到“未处理的异常,是否要调试?”对话框,当我附加调试器时,我有线程列表,其中包含所有的ASP.NET线程,以及3个我自己创建的线程。
对于这3个,我有一个调用堆栈,它们都在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)
有什么办法吗?
谢谢
丹尼尔