Исключение при сохранении в Raven - PullRequest
0 голосов
/ 31 января 2019

Я получаю исключение при попытке сохранить сущность в Raven в одной из наших сред.

Вот подробности:

Application Target Framework : .NET Core 2.1

RavenDB.Client Версия : 4.1.2

.Net Core Runtime и Hosting Bundle установлены на сервере :

2.0.5

2.1.3

2.1.6

2.2.0

(у нас установлено несколько версий, поскольку это общая среда с несколькими приложениями)

Исключение :

System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at Sparrow.Json.UnmanagedWriteBuffer.Write(Byte* buffer, Int32 count)
   at Sparrow.Json.BlittableWriter`1.WriteValue(Byte* buffer, Int32 size, FastList`1 escapePositions, BlittableJsonToken& token, UsageMode mode, Nullable`1 initialCompressedSize) in C:\Builds\RavenDB-Stable-4.1\src\Sparrow\Json\BlittableWriter.cs:line 555
   at Sparrow.Json.BlittableJsonDocumentBuilder.ReadInternal[TWriteStrategy]() in C:\Builds\RavenDB-Stable-4.1\src\Sparrow\Json\BlittableJsonDocumentBuilder.cs:line 320
   at Sparrow.Json.JsonOperationContext.ReadObjectInternal(Object builder, String documentId, UsageMode mode, IBlittableDocumentModifier modifier) in C:\Builds\RavenDB-Stable-4.1\src\Sparrow\Json\JsonOperationContext.cs:line 619
   at Raven.Client.Documents.Session.InMemoryDocumentSessionOperations.StoreEntityInUnitOfWork(String id, Object entity, String changeVector, DynamicJsonValue metadata, ConcurrencyCheckMode forceConcurrencyCheck) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Client\Documents\Session\InMemoryDocumentSessionOperations.cs:line 741
   at Raven.Client.Documents.Session.InMemoryDocumentSessionOperations.StoreInternal(Object entity, String changeVector, String id, ConcurrencyCheckMode forceConcurrencyCheck) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Client\Documents\Session\InMemoryDocumentSessionOperations.cs:line 673
   at Raven.Client.Documents.Session.InMemoryDocumentSessionOperations.StoreAsyncInternal(Object entity, String changeVector, String id, ConcurrencyCheckMode forceConcurrencyCheck, CancellationToken token) in C:\Builds\RavenDB-Stable-4.1\src\Raven.Client\Documents\Session\InMemoryDocumentSessionOperations.cs:line 703
   <Project Specific StackTrace>
   at lambda_method(Closure , Object )
   at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync()

Интересно, что приложение отлично работает на одном из очень похожих компьютеров с одинаковыми настройками и одинаковым набором фреймворков.Я не уверен, что приводит к провалу этого ворона.Любые указатели высоко ценятся.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

После возни более суток.Я смог воспроизвести проблему на моем локальном компьютере со следующей настройкой:

  • Не установлен DOTNET Core SDK

  • Установлен .NET Core Hosting иВремя выполнения для .NET Core 2.1.3 и .NET Core 2.2.0

enter image description here

Если на моем компьютере также установлены .NET Core 2.1.6 Hosting and Runtime(с или без 2.1.3) проблема исчезла.

Это заставило меня поверить, что установка .NET Core 2.1.6 в уязвимой среде была каким-то образом повреждена.Поэтому я удалил и переустановил .NET Core 2.1.6 Хостинг и время выполнения, и это волшебно исправленная проблема.

Однако теперь это заставило наших ИТ-специалистов немного нервничать и нервничать, поскольку теперь они считают, что хостингу и средам выполнения нельзя доверятьбольше.Вы буквально стреляете в темноте, с такими проблемами сталкиваетесь.

0 голосов
/ 31 января 2019

Похоже, System.Runtime.CompilerServices.Unsafe установлен неправильно.

Попробуйте:

1. Установка и использование последней версии клиентского пакета RavenDB -ИЛИ-

2. Попробуйте установить вручную с https://www.nuget.org/packages/System.Runtime.CompilerServices.Unsafe/

Install-Package System.Runtime.CompilerServices.Unsafe -Version 4.5.2
...