Невозможно привести объект типа «System.Int32» к типу «System.Collections.ArrayList '." - PullRequest
0 голосов
/ 25 октября 2018

У нас есть реплицированный кэш с 2 узлами, время от времени мы получали эту ошибку, и мы не можем решить: "Невозможно привести объект типа 'System.Int32' к типу 'System.Collections.ArrayList'. "

Отслеживание стека:

at Alachisoft.NCache.Web.Command.CommandResponse.ParseResponse()
at Alachisoft.NCache.Web.Caching.RemoteCache.Add(String key, Object value, CacheDependency dependency, CacheSyncDependency syncDependency, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, Int16 removeCallback, Int16 updateCallback, Int16 dsItemAddedCallback, Boolean isResyncExpiredItems, String group, String subGroup, Hashtable queryInfo, BitSet flagMap, String providerName, String resyncProviderName, EventDataFilter updateCallbackFilter, EventDataFilter removeCallabackFilter, Int64 size, String clientId)
   at Alachisoft.NCache.Web.Caching.Cache.AddOperation(String key, Object value, CacheDependency dependency, CacheSyncDependency syncDependency, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, DSWriteOption dsWriteOption, CacheItemRemovedCallback onRemoveCallback, CacheItemUpdatedCallback onUpdateCallback, DataSourceItemsAddedCallback onDataSourceItemAdded, Boolean isResyncExpiredItems, String group, String subGroup, Tag[] tags, String providerName, String resyncProviderName, NamedTagsDictionary namedTags, CacheDataNotificationCallback cacheItemUdpatedCallback, CacheDataNotificationCallback cacheItemRemovedCallaback, EventDataFilter itemUpdateDataFilter, EventDataFilter itemRemovedDataFilter, Int64& size, Boolean allowQueryTags, String clientId, Int16 updateCallbackID, Int16 removeCallbackID, Int16 dsItemAddedCallbackID)
   at Alachisoft.NCache.Web.Caching.Cache.Add(String key, CacheItem item, DSWriteOption dsWriteOption, DataSourceItemsAddedCallback onDataSourceItemAdded)
   at Alachisoft.NCache.Web.Caching.Cache.Add(String key, CacheItem item)

В файлах журнала мы видим:

...received response for request 118849, sender=<IP_Server_1>:7800, val=System.Byte[]
...received response for request 118849, sender=<IP_Server_2>:7800, val=Alachisoft.NCache.Common.DataStructures.Clustered.ClusteredArrayList

Как мы можем решить эту проблему?

1 Ответ

0 голосов
/ 13 ноября 2018

Исключение, которое вы получаете, довольно странно.Это обычно выбрасывается в Cache для получения вызовов, когда вы можете использовать недопустимое приведение.Тем не менее, в данном конкретном случае именно при добавлении элемента в кеш я могу поверить, что это на стороне сервера.Нужно будет рассмотреть это - можете ли вы поделиться более подробной информацией по этому вопросу.

Пожалуйста, предоставьте полный фрагмент кода приложения вместе с потоком _cache.Add API в вашем коде.Также поделитесь информацией о версии и издании NCache, чтобы рассмотреть это подробно.Чтобы проверить текущую версию NCache, вы можете запустить инструмент verifylicense.exe (находится в C: \ Program Files \ NCache \ bin \ tools \ verifylicense.exe ").

Я думаю, вам следует обратиться в NCachesupport - support@alachisoft.com - их поддержка отличная - они должны быть в состоянии ускорить это для вас.

...