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

错误是:

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

有关此错误的一些注意事项:

  • 相同的.ravendump文件始终在相同的Documents-nr上给出相同的无效字符错误 .

  • 当我的同事再次创建新的导出.ravendump文件时,Documents-nr和无效字符都不同 .

  • 错误中的 : 是随机字符 . 我的错误是 ./ ,字母 B 等,带有不同的.ravendump导出文件 .

  • 我们目前拥有一个只有200,000多个文件的数据库 . 与随机字符相同,Document-nr给出的错误也会因PER FILE而异 . 我可以连续5次导入同一个文件,并且每次在同一个Document-nr中给出错误 . 但是当我尝试不同的导出文件时,它会停在不同的nr . 有时78.848,有时159.744等 Both the character and the Document-nr it stops are random per .ravendump file.

我曾尝试删除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版本,或者其他什么 . 导致这个问题的一些差异..

所以,目前我被卡住了 . 我可以使用解决方法:获取 生产环境 数据库(而不是开发数据库)并运行我们迄今为止在本地开发(补丁,预测,什么不是)的所有更新,这需要整天完成 . 我可能会在等待答案时开始这样做 . 尽管如此,这个问题在我这个项目的开发过程中已经多次出现了,而且由于数据库在不断增长,我不能每隔4-7天花一整天时间就会发生一些变化 . 这需要数据库重置..

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

下面是错误和整个堆栈跟踪的屏幕截图,虽然这是一种无关的错误,因为我的同事可以使用完全相同的RavenDB版本导入完全相同的文件而没有问题 .

System.AggregateException:发生一个或多个错误 . ---> Raven.Imports.Newtonsoft.Json.JsonReaderException:无效的JavaScript属性标识符:/ . Path'Docs [79699] .Tussenpersonen [81] .Id',第12179618行,第2位在Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseUnquotedProperty()in c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft .Json \ Src \ Newtonsoft.Json \ JsonTextReader.cs:第899行,位于c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft中的Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseProperty() .Json \ JsonTextReader.cs:第851行:Raven.Imports.Newtonsoft.Json.JsonTextReader.ReadInternal()in c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ JsonTextReader.cs :第396行在Raven.Imports.Newtonsoft.Json.JsonTextReader.Read()在c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ JsonTextReader.cs:第314行在Raven . Json.Linq.RavenJObject.Load(JsonReader reader)在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJObject.cs:第261行在Raven.Json.Linq.RavenJArray.Load(JsonReader阅读器) )在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJA rray.cs:第139行,位于Raven.Json.Linq.RavenJObject.Load(JsonReader reader)的c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJObject.cs:Raven.Json第235行.Linq.RavenJToken.ReadFrom(JsonReader reader)在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJToken.cs:第178行Raven.Abstractions.Smuggler.SmugglerDatabaseApiBase.d__a1.MoveNext()在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Smuggler \ SmugglerDatabaseApiBase.cs:第1211行---内部异常堆栈跟踪结束---在System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)at Raven.Abstractions.Smuggler.SmugglerDatabaseApiBase . <> c__DisplayClass70.b__69()in c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Smuggler \ SmugglerDatabaseApiBase .cs:第796行:Raven.Abstractions.Smuggler.SmugglerDatabaseApiBase.d__72.MoveNext()在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Smuggler \ SmugglerDatabaseApiBase.cs:第863行---堆栈跟踪结束从抛出异常的先前位置---在Raven.Abstractions.Smuggler.SmugglerDatabaseApiBase.d__5e.MoveNext的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处()in c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Smuggler \ SmugglerDatabaseApiBase.cs:line 695 ---从抛出异常的上一个位置开始的堆栈跟踪结束---在System.Runtime.CompilerServices上 . TaskAwaiter.ThrowForNonSuccess(任务任务)在Raven.Database.Server.Controllers.StudioTasksController的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) . <> 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属性标识符:/ . Path'Docs [79699] .Tussenpersonen [81] .Id',第12179618行,第2位在Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseUnquotedProperty()in c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft .Json \ Src \ Newtonsoft.Json \ JsonTextReader.cs:第899行,位于c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft中的Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseProperty() .Json \ JsonTextReader.cs:第851行:Raven.Imports.Newtonsoft.Json.JsonTextReader.ReadInternal()in c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ JsonTextReader.cs :第396行在Raven.Imports.Newtonsoft.Json.JsonTextReader.Read()在c:\ Builds \ RavenDB-Stable-3.0 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ JsonTextReader.cs:第314行在Raven . Json.Linq.RavenJObject.Load(JsonReader reader)在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJObject.cs:第261行在Raven.Json.Linq.RavenJArray.Load(JsonReader阅读器) )在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJA rray.cs:第139行,位于Raven.Json.Linq.RavenJObject.Load(JsonReader reader)的c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJObject.cs:Raven.Json第235行.Linq.RavenJToken.ReadFrom(JsonReader reader)在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Json \ Linq \ RavenJToken.cs:第178行Raven.Abstractions.Smuggler.SmugglerDatabaseApiBase.d__a1.MoveNext()在c:\ Builds \ RavenDB-Stable-3.0 \ Raven.Abstractions \ Smuggler \ SmugglerDatabaseApiBase.cs:第1211行<---