У меня есть сайт, над которым я работаю около года.
Недавно он время от времени вызывал исключение System.AccessViolationException, в основном на моей машине разработчика, когда я был далеко от машины ...
Я ничего не менял в коде сервера в течение нескольких недель, так как я на 100% работал над Javascript, и эта ошибка начала появляться недавно.
Кроме того, код, который я делаю, управляется на 100%. Я не делаю никаких взаимодействий, вызываю странные библиотеки DLL, ничего. Это чистый VB.Net, так что я не понимаю, как я мог бы генерировать один из них сам ...
Теперь я пользуюсь этой новой машиной пару месяцев, и она не работает на 100% правильно. Например, каждые 2 или 3 дня я получаю синий экран. У меня не было времени, чтобы правильно его диагностировать, но я подозреваю, что у меня неисправный чип ОЗУ.
Возможно ли, что неисправное ОЗУ может привести к исключению AccessViolationException?
Или у меня есть реальная проблема, которую я должен изучить? (помимо моей оперативной памяти)
UPDATE:
Я не могу найти, ГДЕ происходит ошибка, на самом деле.
Я получаю "необработанное исключение, вы хотите отладить?" диалоговое окно, и когда я присоединяю отладчик, у меня есть список потоков, где у меня есть все потоки 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)
Есть идеи, что с этим делать?
Спасибо
Daniel