Saya berharap seseorang dapat memberi tahu saya apa yang mungkin menyebabkan kesalahan ini:
Mencoba membaca atau menulis memori yang dilindungi. Ini sering merupakan indikasi bahwa memori lain rusak.
Saya benar-benar tidak dapat memposting kode karena kesalahan ini tampaknya dilemparkan ke area acak aplikasi. Aplikasi akan berjalan di mana saja 12-48 jam sebelum melempar kesalahan. Kadang-kadang itu akan berhenti di tempat yang tampaknya acak dan melempar kesalahan di atas, di lain waktu seluruh aplikasi berhenti dan saya mendapatkan layar dengan kesalahan yang mengatakan sesuatu di sepanjang baris "Ada kesalahan fatal di ... Ini mungkin merupakan bug di CLR atau ... "sesuatu tentang PInvoke atau info tidak relevan lainnya. Ketika ini terjadi, semua utas ditampilkan dihentikan dan tidak ada informasi debug yang tersedia.
Singkatnya inilah yang dilakukan aplikasi:
Ini adalah aplikasi server multi-utas yang ditulis seluruhnya dalam C #. Klien terhubung ke server melalui soket. Server menjalankan "lingkungan" virtual untuk klien di mana mereka dapat berinteraksi satu sama lain dan lingkungan. Ini mengkonsumsi sedikit memori tetapi saya tidak melihatnya bocor. Biasanya mengkonsumsi sekitar 1,5GB. Saya tidak berpikir ini bocor karena penggunaan memori tetap relatif konstan sepanjang waktu aplikasi berjalan. Kode ini terus berjalan untuk menjaga lingkungan bahkan jika klien tidak melakukan apa pun. Tidak menggunakan perangkat lunak pihak ke-3 atau API lainnya. Satu-satunya sumber daya luar yang digunakan aplikasi ini adalah koneksi soket dan koneksi database SQL. Ini berjalan pada server 64bit. Saya telah mencoba men-debug ini di VS2008 & VS2010 menggunakan .net 2.0, 3.5, dan 4.
Saya sudah mencoba mematikan optimisasi kompiler dan beberapa hot-fix microsoft. Sepertinya tidak ada yang membuat masalah ini hilang. Akan dihargai jika ada yang tahu kemungkinan penyebabnya, atau semacam cara untuk mengidentifikasi apa yang menyebabkan masalah.