RavenDB内存中数据库错误:找不到方法:';Raven.Json.Linq.RavenJObject

RavenDB内存中数据库错误:找不到方法:';Raven.Json.Linq.RavenJObject,ravendb,in-memory-database,missingmethodexception,Ravendb,In Memory Database,Missingmethodexception,我在使用RavenDB设置内存中数据库时遇到问题 我得到的错误是:我得到的是: 安装程序:System.MissingMethodException:找不到方法:“Raven.Json.Linq.RavenJObject Raven.Abstractions.Extensions.JsonExtensions.ToJObject(字节[])” 完整错误跟踪: SetUp : System.MissingMethodException : Method not found: 'Raven.

我在使用RavenDB设置内存中数据库时遇到问题

我得到的错误是:我得到的是: 安装程序:System.MissingMethodException:找不到方法:“Raven.Json.Linq.RavenJObject Raven.Abstractions.Extensions.JsonExtensions.ToJObject(字节[])”

完整错误跟踪:

SetUp : System.MissingMethodException :
    Method not found: 'Raven.Json.Linq.RavenJObject Raven.Abstractions.Extensions.JsonExtensions.ToJObject(Byte[])'. 
at Raven.Storage.Managed.DocumentsStorageActions.DeleteDocument(String key, Nullable1 etag, ref RavenJObject metadata) 
at Raven.Database.DocumentDatabase.<>c__DisplayClass4e.<Delete>b__48(IStorageActionsAccessor actions)
    in c:\Builds\raven\Raven.Database\DocumentDatabase.cs: line 518 
at Raven.Storage.Managed.TransactionalStorage.Batch(Action1 action)
    in c:\Builds\raven\Raven.Storage.Managed\TransactionalStorage.cs: line 112 
at Raven.Database.DocumentDatabase.Delete(String key, Nullable`1 etag, TransactionInformation transactionInformation)
    in c:\Builds\raven\Raven.Database\DocumentDatabase.cs: line 509
at Raven.Database.Backup.RemoveBackupDocumentStartupTask.Execute(DocumentDatabase database)
    in c:\Builds\raven\Raven.Database\Backup\RemoveBackupDocumentStartupTask.cs: line 17 
at Raven.Database.DocumentDatabase.ExecuteStartupTasks()
    in c:\Builds\raven\Raven.Database\DocumentDatabase.cs: line 214 
at Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration configuration)
    in c:\Builds\raven\Raven.Database\DocumentDatabase.cs: line 173 
at Raven.Client.Embedded.EmbeddableDocumentStore.InitializeInternal() 
at Raven.Client.Document.DocumentStore.Initialize()
    in c:\Builds\raven\Raven.Client.Lightweight\Document\DocumentStore.cs: line 484 
at Aqueduct.Dashboard.Web.Tests.RavenInMemoryDatabase.InMemoryDatabase.DocumentStore()
    in InMemoryDatabase.cs: line 27 
at Aqueduct.Dashboard.Web.Tests.MonitoringServiceTests.Setup()
    in MonitoringServiceTests.cs: line 24
我的测试是:

 [TestFixture]
public class MonitoringServiceTests
{
    private IMonitoringService m_monitoringService;
    private PerformanceRepository m_performanceRepository;
    private InMemoryDatabase m_inMemoryDatabase;

    [TestFixtureSetUp]
    public void Setup()
    {
        m_inMemoryDatabase = new InMemoryDatabase();

        m_performanceRepository = new PerformanceRepository(m_inMemoryDatabase.DocumentStore().OpenSession());
        m_monitoringService = new MonitoringService(m_performanceRepository);
    }

    [Test]
    public void RecordSnapShot_RecordsCpuUsage()
    {
        m_monitoringService.RecordSnapShot();
        var allMeasurements = m_performanceRepository.GetAll();
        Assert.IsTrue(allMeasurements.Where(x => x.MeasurementType == MeasurementType.ProcessorUsage).Count() == 1);
    }
}

documentStore
的创建更改为以下内容,然后查看是否有效:

var documentStore = new EmbeddableDocumentStore { RunInMemory = true }
据我所知,你在创建商店时做了一些非常奇怪的事情。为什么要在内存中运行时提供路径?即使如此,路径也可以是相对的,也可以是简单的“数据”


查看ravens源代码,查看(希望)许多使用内存存储的工作测试。

您可能有ravendb DLL的混合版本,这是唯一可能导致此错误的原因。

我刚刚尝试了您的建议,但仍然得到相同的错误。(将看一看他的测试,看看我遗漏了什么。)可能是指我猜的东西。好的,你的版本号是多少?非常感谢Ayende。就是这样。
var documentStore = new EmbeddableDocumentStore { RunInMemory = true }