Транскодер protobuf-net для проблем с EnyimMemcached

Является ли транскодер из protobuf-net в enyim кеш устаревшим? распределенное кеширование с помощью protobuff-net

Установка моей конфигурации Enyim так же, как этот app.config вызывает ошибку, когда я пытаюсь запустить MemcachedClient() То же самое для использования

transcoder type="ProtoBuf.Caching.Enyim.NetTranscoder"/

System.TypeInitializationException was unhandled by user code
HResult=-2146233036
Message=The type initializer for 'Enyim.Caching.MemcachedClient' threw an exception.
Source=Enyim.Caching
TypeName=Enyim.Caching.MemcachedClient
StackTrace:
   at Enyim.Caching.MemcachedClient..ctor()
   at Global.asax.cs:line 31
InnerException: System.Configuration.ConfigurationErrorsException
   HResult=-2146232062
   Message=The value of the property 'transcoder' cannot be parsed. The error is: Object reference   not set to an instance of an object. (\web.config line 207)
   Source=System.Configuration
   BareMessage=The value of the property 'transcoder' cannot be parsed. The error is: Object reference not set to an instance of an object.
   StackTrace:
        at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
        at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
        at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
        at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
        at System.Web.HttpContext.GetSection(String sectionName)
        at System.Web.Configuration.HttpConfigurationSystem.GetSection(String sectionName)
        at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)
        at System.Configuration.ConfigurationManager.GetSection(String sectionName)
        at Enyim.Caching.MemcachedClient..cctor() in MemcachedClient.cs:line 25
   InnerException: 

Оба установлены с помощью Nuget и с использованием последней доступной версии.

1 ответ

Решение

Да (кашель), конечно, это там! Просто посмотрите "протобуф-нет.Эным", т.е.

PM> Install-Package, протобуф-нет.Еним

(или используйте клиент GUI)

Для инициализации вам необходимо настроить транскодер как экземпляр ProtoBuf.Caching.Enyim.NetTranscoder (согласно оригинальной инструкции). Если вы делаете это через конфигурацию, обратите внимание, что сборка для этого типа сейчас protobuf-net.Enyim, Если я предполагаю, что файл конфигурации использует стандартную запись, то это означает, что вам нужно указать (в конфигурации):

<transcoder type="ProtoBuf.Caching.Enyim.NetTranscoder,protobuf-net.Enyim" />

Оригинальный ответ:

Транскодер enyim в настоящее время отсутствует в nuget; однако - я прямо сейчас возьму на себя возрождение этого, добавив отдельный пакет NuGet (ссылка EnyimMemcached и protobuf-net), который добавляет это обратно.

Случайный вопрос... есть ли шанс, что вы можете указать мне на бинарную загрузку memcached для тестирования?

Одна из причин, по которой это отстает, заключается в том, что когда я впервые написал транскодер enyim, memcached был простым "запусти это" - но в прошлый раз, когда я посмотрел, все пошло "по-корпоративному", и я не смог отследить простой пакет, который только что имел сервер memcached. Если вы покажете мне, где это сейчас, я получу работу в эти выходные.

Другие вопросы по тегам