我有一个使用SQL Server Compact Edition 4.0在本地存储数据的WPF应用程序。我经常会遇到来自Compact Edition 4.0数据库的随机但相当频繁的崩溃。它总是给出相同的错误...
Attempted to read or write protected memory. This is often an indication that other
memory is corrupt.
…带有以下有限的堆栈跟踪...
at System.Data.SqlServerCe.NativeMethodsHelper.SafeRelease(IntPtr& ppUnknown)
at System.Data.SqlServerCe.SqlCeCommand.ReleaseNativeInterfaces()
at System.Data.SqlServerCe.SqlCeCommand.Dispose(Boolean disposing)
at System.Data.SqlServerCe.SqlCeCommand.Finalize()
我有一个单独的线程用于所有CE数据库调用,因此我知道所有的数据库调用都是串行化的(没有并发调用数据库),并且它们都在同一个线程上发生。当异常发生时,它总是具有上述细节。
这个问题不可重现,但它经常发生,以至于我的应用程序运行不超过10分钟。有时它将在前几秒钟崩溃,有时在操作的前10分钟内发生,但最可能的情况是在两个极端之间的某个地方。
我无法从谷歌搜索中找到任何有用的信息,希望其他人曾经遇到过这个问题并且有解决方法。谢谢。