0

我们有一个带有 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

我们如何解决这个问题?

4

1 回答 1

0

你得到的铸造异常是相当奇怪的。这通常在 Cache get 调用中抛出,您可能正在使用无效的强制转换。但是,在这种特殊情况下,它是将项目添加到缓存中,这让我相信这是在服务器端。需要对此进行审查-您能否分享更多详细信息。

请分享完整的应用程序代码片段以及 _cache 上的流程。在您的代码中添加 API。还分享 NCache 版本和版本信息,以便详细查看。您可以运行“verifylicense.exe”工具(位于“C:\Program Files\NCache\bin\tools\verifylicense.exe”)来检查当前的 NCache 版本。

我认为您应该联系 NCache 支持 - support@alachisoft.com - 他们的支持非常好 - 他们应该能够为您加快这一进程。

于 2018-11-13T06:13:50.797 回答