내 질문의 목적이 완전히 다르지만 이것은 일종의 my previous question에서 반복됩니다..Net 2.0 : System.AccessViolationException 문제를 해결하는 데 도움이됩니다. 100 % 관리 코드
필자는 현재 개발 컴퓨터에서 만든 웹 응용 프로그램에서 System.AccessViolationException을 발견하고 있습니다.
내 컴퓨터가 블루 스크린과 같이 잘 작동하지 않는 몇 가지 작업을 수행하고 있기 때문에 RAM이 잘못되기 전에 가정했습니다. memtest를 실행 한 후 24 시간이 지나서야 확신 할 수 있습니다 ...
이것은 상황입니다. 이것은 응용 프로그램, VB.Net 2.0, 100 % 관리 코드, COM, Interop , 또는 그런 것. Windows Server 2008 SP2에서 실행됩니다.
내가하고있는 유일한 "이상한"일은 appdomain 내부의 "cron과 같은"작업을하는 응용 프로그램이 시작될 때 내 스레드 3 개를 시작하는 것입니다. 또한이 응용 프로그램이 처리하는 대부분의 요청은 비동기 적으로 처리됩니다. 그들 중 대다수는 30 초 동안 응답하지 않고 열리게됩니다. (나는 Comet long-polling을하고있다).
또한이 코드를 약 1 년 동안 사용해오고 있으며 약 한 달 전에 시작되었습니다. 최근에 변경된이 전체 웹 앱에서 변경된 주요 사항이나 중요 사항을 생각할 수 없습니다. 나는 거의 자바 스크립트 프론트 엔드에서 작업 해왔다.
예외가 발생하면 디버깅 여부를 묻는 일반 팝업이 표시됩니다. 내가 할 때, 나는 모든 ASP.Net 스레드와 나의 3 스레드를 볼 수 있습니다.
내 3 개의 스레드가 정상적인 Sleep() 호출에 있습니다. 다른 모든 ASP.Net 스레드에는 호출 스택이 전혀 없습니다.
Visual Studio에서 예외가 있다고 알리는 스레드에서 아무 것도 볼 수 없습니다.
그래서 어디서 오류가 발생하는지 또는 매번 같은 장소에서 발생하는지 여부는 알 수 없습니다.
모든 나는 단서가 "응용 프로그램"이벤트 로그에이 같이 찾을 수 :
Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e03238,
faulting module unknown, version 0.0.0.0, time stamp 0x00000000, exception code
0xc0000005, fault offset 0x0000000002358fe8, process id 0x1f4c, application
start time 0x01ca41395c564ed9.
그리고 바로 그 이후
이 또 다른 이벤트 : 나 'An unhandled exception occurred and the process was terminated.
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)
봤는데 MgdIndicateCompletion,하지만 정말 유용한 것을 찾을 수 없습니다 ...
약 한 달 전에 변경 한 한 가지, 이제는 생각해 보았습니다. Server 2003 x64에서 Server 2008 x64로 (그리고 IIS6에서 IIS7로) 옮겼습니다. 어쩌면 그 원인이 될 수 있지만 여전히, 나는 이것을 어떻게 만들지 모르겠다. ...
내 말은, 이것은 내 코드베이스에서 문제를 완전히 없애겠습니까?
UPDATE :으로 그것을 해결하기 위해 "클래식"보인다 수있는 응용 프로그램 풀의 통합을 돌려, here을 제안했다. 나는 아직도 괜찮은 해결책, 또는 적어도 설명을 찾고있다.
당신은 버전 관리에 시간을 거슬러 가서 문제가 시작되기 전에에서 앱 버전을 얻을 수 있습니다, 서버 마이그레이션이 원인이라는 (가능성?) 가능성을 제거하려면 나타 납니까? – JeffH
흠, 좋은 생각인데,이 코드는 내 컴퓨터에서 계속 작동해야하기 때문에 내 dev 머신 이니 .... –