RavenDB C#客户端抛出错误,因为节点标记字符无效:n

RavenDB C#客户端抛出错误,因为节点标记字符无效:n,ravendb,Ravendb,我正在尝试删除RavenDB中的一个文档,该文档在一台机器上运行3个节点(开发设置)。 下面是删除文档的代码 public bool Remove<T>(string id) where T : new() { bool bResult = false; using (var session = _session.OpenSession()) { session.Delete(id); session.SaveChanges()

我正在尝试删除RavenDB中的一个文档,该文档在一台机器上运行3个节点(开发设置)。 下面是删除文档的代码

public bool Remove<T>(string id) where T : new()
{
    bool bResult = false;
    using (var session = _session.OpenSession())
    {
        session.Delete(id);
        session.SaveChanges();
        bResult = true;
    }
    return bResult;
}

我昨天也犯了同样的错误。我在另一台机器上恢复了数据库,在这台机器上我安装了全新的RavenDB,并且(由于懒惰)将新实例节点命名为“A”。当更改向量和实例标记名不匹配时,RavenDB当前似乎无法删除文档

这看起来像是一个诚实的代码错误,而不是故意的行为。。但这只是我的猜测,因为我在4.1文档中没有找到任何关于这种行为的信息

解决方案(如果您确认存在不匹配):

您可以尝试向集群添加一个新节点,其名称与锁定文档的更改向量相匹配

在我的例子中,我无法将独立RavenDB配置为具有超过4个字符的节点标记(这在Docker上没有问题)。。。那个么,让数据库处于一致状态可能会更加困难


或者尝试导出和导入数据。它修复了问题,因为更改向量已更新并与新节点标记匹配。

您能更新第一个代码示例吗?这是无效的C#::“bResult=**Background:*true;”能否在Fiddler捕获请求时显示其输出?
System.ArgumentException: Invalid node tag character: n
   at Raven.Server.Documents.Replication.ChangeVectorParser.ThrowInvalidNodeTag(Char ch) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\Replication\ChangeVectorParser.cs:line 71
   at Raven.Server.Documents.Replication.ChangeVectorParser.ParseNodeTag(String changeVector, Int32 start, Int32 end) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\Replication\ChangeVectorParser.cs:line 52
   at Raven.Server.Documents.Replication.ChangeVectorParser.MergeChangeVector(String changeVector, List`1 entries) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\Replication\ChangeVectorParser.cs:line 186
   at Raven.Server.Utils.ChangeVectorUtils.MergeVectors(String vectorAstring, String vectorBstring) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Utils\ChangeVectorUtils.cs:line 213
   at Raven.Server.Documents.DocumentsStorage.CreateTombstone(DocumentsOperationContext context, Slice lowerId, Int64 documentEtag, CollectionName collectionName, String docChangeVector, Int64 lastModifiedTicks, String changeVector, DocumentFlags flags, NonPersistentDocumentFlags nonPersistentFlags) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\DocumentsStorage.cs:line 1378
   at Raven.Server.Documents.DocumentsStorage.Delete(DocumentsOperationContext context, Slice lowerId, String id, LazyStringValue expectedChangeVector, Nullable`1 lastModifiedTicks, String changeVector, CollectionName collectionName, NonPersistentDocumentFlags nonPersistentFlags, DocumentFlags documentFlags) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\DocumentsStorage.cs:line 1195
   at Raven.Server.Documents.DocumentsStorage.Delete(DocumentsOperationContext context, String id, String expectedChangeVector) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\DocumentsStorage.cs:line 1091
   at Raven.Server.Documents.Handlers.BatchHandler.MergedBatchCommand.ExecuteCmd(DocumentsOperationContext context) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\Handlers\BatchHandler.cs:line 706
   at Raven.Server.Documents.TransactionOperationsMerger.ExecutePendingOperationsInTransaction(List`1 pendingOps, DocumentsOperationContext context, Task previousOperation, DurationMeasurement& meter) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\TransactionOperationsMerger.cs:line 825
   at Raven.Server.Documents.TransactionOperationsMerger.MergeTransactionsOnce() in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\TransactionOperationsMerger.cs:line 500
--- End of stack trace from previous location where exception was thrown ---
   at Raven.Server.Documents.TransactionOperationsMerger.Enqueue(MergedTransactionCommand cmd) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\TransactionOperationsMerger.cs:line 124
   at Raven.Server.Documents.Handlers.BatchHandler.BulkDocs() in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Documents\Handlers\BatchHandler.cs:line 96
   at Raven.Server.Routing.RequestRouter.HandlePath(RequestHandlerContext reqCtx) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\Routing\RequestRouter.cs:line 124
   at Raven.Server.RavenServerStartup.RequestHandler(HttpContext context) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Server\RavenServerStartup.cs:line 172