Apache Ignite: не найден соответствующий тип для объекта NonRandomizedStringEqualityComparer в cache.Get из приложения .net Framework - PullRequest
1 голос
/ 29 июня 2019

Я использую Apache ignite версии 2.7.5. и использование ядра .net в качестве сервера и тонкого клиента. Конфигурация кэша с ключом в виде строки и значением в качестве класса модели, например Employee.А этот класс модели имеет свойства, включая поля типа данных словаря.

Я выполняю get и помещаю запись в кеш из приложения, целевой платформой которого является .net framework.

В моем .net core (v2.2.103) клиентском методе Load (), возвращающем результат, но в приложении вызывающей стороны получено следующее исключение.

{"Не найдено подходящего типа для объекта [typeId = 596790889, TypeName = System.Collections.Generic.NonRandomizedStringEqualityComparer]. Обычно это означает, что сборка с указанным типом не загружена на узле. При использовании Apache.Ignite.exe обязательно загружайте сборки с параметром -assembly. В качестве альтернативы, установите IgniteConfiguration.PeerAssemblyLoadingEnabled в true. "}

Любой может дать вам совет, как решить это исключение.

1 Ответ

1 голос
/ 01 июля 2019

Я думаю, что у вас несоответствие версий .Net - один использует NonRandomizedStringEqualityComparer в качестве компаратора для своих словарей, у другого нет этого типа.

Пожалуйста, посмотрите эту связанную ошибку ядра .Net: https://github.com/dotnet/corefx/issues/26033

Возможно, что Ignite самостоятельно обрабатывает такие словари, но я не уверен, какие шаги нужно воспроизвести. Прямо сейчас рекомендуется убедиться, что вы везде используете одну и ту же версию .Net runtime.

...