1

我和我的同事正在使用 RavenDB(目前是 Stable Build 3800)。当我们中的一个人创建我们的开发服务器数据库的导出(启用或不启用索引)时,我的同事能够毫无问题地在本地导入它,但我每次都会遇到相同的错误。

错误是:

System.AggregateException:发生一个或多个错误。---> Raven.Imports.Newtonsoft.Json.JsonReaderException:解析属性名称后出现无效字符。预期':'但得到:...

关于这个错误有几点需要注意:

  • 相同的 .ravendump 文件总是在相同的 Documents-nr 上给出相同的无效字符错误。
  • 当我的同事再次创建新的导出 .ravendump 文件时,Documents-nr 和无效字符都不同。
  • 错误中的:是随机字符。使用不同的 .ravendump 导出文件时,我遇到了 a .、 a /、 letterB等错误。
  • 我们目前拥有一个包含 200,000 多份文档的数据库。与随机字符相同,它给出错误的 Document-nr 也因每个文件而异。我可以连续导入同一个文件 5 次,每次它都会在同一个 Document-nr 上给出错误。但是当我尝试不同的导出文件时,它会在不同的 nr 处停止。有时是 78.848,有时是 159.744,等等。字符和它停止的 Document-nr 都是每个 .ravendump 文件的随机数。

我尝试删除 RavenDB 几次,尝试从 Windows 8.1 更新到 Windows 10(可能有点无关紧要,但由于我的同事使用的是 Windows 7 和 10,而我是唯一一个使用 8.1 的人,我们只是尝试更新到 10 Enterprice)。导入时我也尝试过禁用或不禁用索引。今天下午,如果我的老板还有一些内存(目前我有 10MB,我的同事有 10、14 和 16),我将尝试为我的笔记本电脑添加更多内存。虽然当我导入文件时,我的内存稳定在 70-80%。

我的同事可以毫无问题地导入完全相同的 .ravendump 文件,但我做不到。有什么东西会导致这种差异吗?我们都使用 Raven Build 3800,但可能 Newtonsoft 版本不同,或者 JavaScript 版本,或其他。导致此问题的一些差异..

所以,目前我被卡住了。我可以为此使用一种解决方法:获取生产数据库(而不是开发数据库)并在本地运行我们迄今为止在开发(补丁、投影等)上所做的所有更新,这需要一整天来完成。我可能会在等待答案时开始这样做。尽管如此,这是一个非常烦人的问题,在这个项目的开发过程中我已经多次遇到过,而且由于数据库正在增长,我不能每四七天花一整天时间进行一些更改开发这需要数据库重置..

我已经针对这个问题进行了一些搜索,并且看到其他一些人遇到了同样的问题,但在我的情况下没有真正的解决方案。与本地相比,其中一个具有不同的服务器数据库版本,但我们具有相同的 3800 版本。

下面是错误和整个堆栈跟踪的屏幕截图,尽管这是一种无关紧要的错误,因为我的同事可以毫无问题地导入完全相同的文件和完全相同的 RavenDB 版本。

在此处输入图像描述

System.AggregateException:发生一个或多个错误。---> Raven.Imports.Newtonsoft.Json.JsonReaderException:无效的 JavaScript 属性标识符字符:/。路径 'Docs[79699].Tussenpersonen[81].Id',第 12179618 行,位置 2。在 c:\Builds\RavenDB-Stable-3.0\Imports\Newtonsoft 中的 Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseUnquotedProperty() .Json\Src\Newtonsoft.Json\JsonTextReader.cs:Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseProperty() 的第 899 行,位于 c:\Builds\RavenDB-Stable-3.0\Imports\Newtonsoft.Json\Src\Newtonsoft .Json\JsonTextReader.cs:Raven.Imports.Newtonsoft.Json.JsonTextReader.ReadInternal() 的第 851 行,位于 c:\Builds\RavenDB-Stable-3.0\Imports\Newtonsoft.Json\Src\Newtonsoft.Json\JsonTextReader.cs :c:\Builds\RavenDB-Stable-3 中 Raven.Imports.Newtonsoft.Json.JsonTextReader.Read() 的第 396 行。\Builds\RavenDB-Stable-3.0\Raven.Abstractions\Smuggler\SmugglerDatabaseApiBase.cs:line 695 --- 堆栈跟踪从先前抛出异常的位置结束---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在 Raven.Database.Server.Controllers.StudioTasksController.<>c__DisplayClassf.<b__b>d__14.MoveNext() 在 c:\Builds\RavenDB-Stable-3.0 \Raven.Database\Server\Controllers\StudioTasksController.cs:第 173 行 --->(内部异常 #0)Raven.Imports.Newtonsoft.Json.JsonReaderException:无效的 JavaScript 属性标识符字符:/。路径 'Docs[79699].Tussenpersonen[81].Id',第 12179618 行,位置 2。在 Raven.Imports.Newtonsoft.Json.JsonTextReader。

4

0 回答 0