Транскодер protobuf-net для задач EnyimMemcached

83
11

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


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


тип транскодера = "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 и используют самую последнюю версию.

спросил(а) 2012-11-30T17:08:00+04:00 7 лет, 12 месяцев назад
1
Решение
81

Да (кашель), конечно, что там! Просто посмотрите "protobuf-net.Enyim", т.е.


PM > Install-Package protobuf-net.Enyim



(или используйте клиент 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. Если вы можете показать мне, где это сейчас, я заставлю его работать в эти выходные.

ответил(а) 2012-11-30T17:19:00+04:00 7 лет, 12 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема