Я надеюсь, что кто-то может объяснить мне, что может быть причиной этой ошибки:
Попытка чтения или записи в защищенную память.Это часто указывает на то, что другая память повреждена.
Я действительно не могу опубликовать код, потому что эта ошибка возникает в любой случайной области приложения.Приложение будет работать где-то за 12-48 часов до появления ошибки.Иногда он останавливается в кажущемся случайном месте и выдает вышеуказанную ошибку, в других случаях все приложение останавливается, и я получаю экран с ошибкой, которая говорит что-то вроде: «Произошла фатальная ошибка в ... Это может бытьошибка в CLR или ... "что-то о PInvoke или другой не относящейся к делу информации.Когда это происходит, все потоки показываются прерванными, и отладочной информации нет.
В двух словах, это то, что делает приложение:
Это многопоточное серверное приложение, полностью написанное на C #.Клиенты подключаются к серверу через сокет.Сервер запускает виртуальную «среду» для клиентов, где они могут взаимодействовать друг с другом и средой.Он потребляет совсем немного памяти, но я не вижу его утечки.Обычно он занимает около 1,5 ГБ.Я не думаю, что это утечка, потому что использование памяти остается относительно постоянным в течение всего времени работы приложения.Это постоянно работающий код для поддержки среды, даже если клиенты ничего не делают.Он не использует стороннее программное обеспечение или другие API.Единственные внешние ресурсы, которые использует это приложение, - это сокетные соединения и соединения с базой данных SQL.Он работает на 64-битном сервере.Я попытался отладить это в VS2008 и VS2010, используя .net 2.0, 3.5 и 4.0 и на нескольких серверах, и проблема все еще в конечном итоге возникает.
Я пытался отключить оптимизацию компилятора и несколько исправлений Microsoft.Кажется, ничто не может решить эту проблему.Было бы полезно, если бы кто-нибудь знал какие-либо возможные причины или какой-то способ определить причины проблемы.