根据this MSDN页面,“Put通过将版本信息作为可选参数来支持乐观并发;如果要替换的对象具有相同的版本,则只能成功。”
当版本不同时,有什么好的解决方案?缓存客户端是WCF服务。
答案 0 :(得分:0)
如果版本不同,则表明另一个客户已经进入并更新了缓存对象。您可以通过捕获将从您的Put调用中抛出的DataCacheException
并检查ErrorCode
对DataCacheErrorCode
枚举来检测到这一点 - CacheItemVersionMismatch
是要测试的特定条目反对。捕获此错误表示您的当前客户端正在使用的缓存项目已过时,您应该从客户端获取最新版本(您可能想要或可能不想向用户显示)在您尝试再次进行更改之前。
这就是为什么在乐观并发场景中你想要获取缓存对象,进行更改然后尽快将其返回缓存 - 你不希望持有任何类型的版本 - 运行过程或你开始看到这些问题。