누군가이 오류를 일으킬 수있는 것에 대해 누군가를 깨달을 수 있기를 바랍니다.
보호 된 메모리를 읽거나 쓰려고했습니다. 이것은 종종 다른 메모리가 손상되었음을 나타냅니다.
이 오류는 응용 프로그램의 임의의 영역에서 발생하는 것으로 보이므로 실제로 코드를 게시 할 수 없습니다. 응용 프로그램은 오류가 발생하기 전에 12-48 시간 동안 실행됩니다. 때로는 겉보기에 임의의 지점에서 멈추고 위의 오류가 발생합니다. 다른 경우 전체 응용 프로그램이 중지되고 "치명적인 오류가 발생했습니다 ... '라는 줄에 오류가있는 화면이 나타납니다. CLR의 버그 또는 ... "PInvoke 또는 기타 관련이없는 정보에 관한 정보. 이 경우 모든 스레드가 종료 된 것으로 표시되고 사용 가능한 디버깅 정보가 없습니다.
간단히 말해서 이것은 응용 프로그램이하는 일입니다.
C #으로 작성된 멀티 스레드 서버 응용 프로그램입니다. 클라이언트는 소켓을 통해 서버에 연결됩니다. 서버는 클라이언트가 서로 및 환경과 상호 작용할 수있는 가상 환경을 실행합니다. 꽤 많은 메모리를 소비하지만 누수가 보이지 않습니다. 일반적으로 약 1.5GB를 소비합니다. 메모리 사용량이 응용 프로그램이 실행되는 동안 전체적으로 상대적으로 일정하기 때문에 누수가 있다고 생각하지 않습니다. 클라이언트가 아무것도하지 않더라도 환경을 유지하기 위해 지속적으로 코드를 실행합니다. 타사 소프트웨어 나 다른 API를 사용하지 않습니다. 이 응용 프로그램에서 사용하는 유일한 외부 리소스는 소켓 연결 및 SQL 데이터베이스 연결입니다. 64 비트 서버에서 실행 중입니다. VS2008 및 VS2010에서 .net 2.0, 3.5 및 4를 사용하여 디버깅하려고했습니다.
컴파일러 최적화와 여러 Microsoft 핫픽스를 끄려고했습니다. 이 문제가 사라지는 것은 없습니다. 가능한 원인 또는 문제를 일으키는 원인을 식별 할 수있는 방법을 아는 사람이 있다면 감사하겠습니다.