我有一个 WPF 应用程序,它使用 SQL Server Compact Edition 4.0 在本地计算机上存储数据。我遇到了来自 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 分钟后崩溃,但很可能介于两个极端之间。
我在谷歌上找不到任何有用的东西,因此希望这是其他人可能已经看到并有解决方法的问题。谢谢。