Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net SQL Compact Edition数据库损坏_.net_Sql Server Ce - Fatal编程技术网

.net SQL Compact Edition数据库损坏

.net SQL Compact Edition数据库损坏,.net,sql-server-ce,.net,Sql Server Ce,我们的产品在Windows计算机(笔记本电脑)上使用MS SQL Compact Edition。它基本上是文件系统中文件的元数据索引。最近我们看到数据库被破坏 当机器忙于移动文件,并且必须同时进行少量数据库更改时,就会发生这种情况 我有点震惊,这是完全可能的。我期望数据库在任何情况下都保持一致 当然,我们做错了什么。到目前为止,我们检查的内容包括: 每个线程仅使用一个db连接 指定打开数据库时的最大大小 数据库只能由一个应用程序访问,这是一个基于.net的windows服务。还有其他的抓到

我们的产品在Windows计算机(笔记本电脑)上使用MS SQL Compact Edition。它基本上是文件系统中文件的元数据索引。最近我们看到数据库被破坏

当机器忙于移动文件,并且必须同时进行少量数据库更改时,就会发生这种情况

我有点震惊,这是完全可能的。我期望数据库在任何情况下都保持一致

当然,我们做错了什么。到目前为止,我们检查的内容包括:

  • 每个线程仅使用一个db连接
  • 指定打开数据库时的最大大小

数据库只能由一个应用程序访问,这是一个基于.net的windows服务。还有其他的抓到你了吗

> P>您可能需要考虑将刷新间隔属性添加到对象的连接字符串中。从MSDN:

冲洗间隔或ssce:冲洗间隔 ->指定所有提交之前的间隔时间(以秒为单位) 事务被刷新到磁盘。如果 未指定,默认值为 十,


您可能还想考虑创建代码来尝试。没有保证,但值得一试。

你说的“腐败”是指在你的记录中随意乱说,还是说数据库无法读取;或者,您的意思是数据库处于不一致的状态(但可读,尽管数据不正确)?@Kyralessa:数据库无法再打开。您使用的是什么版本的SqlCe?@jdv:可能想看看这篇关于私有部署的伟大文章-只是为了确保Windows Update不会升级您的最终用户版本的SQL CE:谢谢,我会检查这些。我们永远不会知道原始问题的原因,但是谢谢分享你的建议。