间歇性Azure缓存错误:“引用的缓存不存在。联系管理员或使用缓存管理工具创建缓存。“

时间:2013-05-29 14:49:48

标签: azure azure-caching

我们有一段时间一直使用缓存角色的部署(没有实际问题),我们最近在一个实例上添加了一个共同缓存的缓存。

由于我们已添加此共置缓存,因此我们偶尔会看到此错误:

ErrorCode<ERRCA0009>:SubStatus<ES0001>:Cache referred to does not exist. Contact administrator or use the Cache administration tool to create a Cache.

当我们以缓存角色访问缓存时,但这似乎几乎立即消失,一切都好了一段时间,直到此问题返回。

缓存似乎不太可能存在,因为它一直在工作,然后很快就开始工作了,那么问题是什么呢?

编辑以添加更多细节。

我们有2个缓存。 1是专用缓存角色,它保存一些响应数据,在Web角色和辅助角色之间共享,多个实例使用缓存(可能大约10个)。 1是1个Web角色(2个实例)上的共存缓存,它包含一些仅由此角色所需的小ID。

我们认为该问题可能与这两个缓存都配置为在Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString值中使用相同的存储帐户这一事实有关,并且它们似乎会覆盖彼此的更改。

这是使用两个缓存的角色的配置:

<dataCacheClients>
<dataCacheClient name="binaryConfig">
  <autoDiscover isEnabled="true" identifier="CacheRole" />
</dataCacheClient>
<dataCacheClient name="request-ids">
  <autoDiscover isEnabled="true" identifier="Api" />
  <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />      
</dataCacheClient>

我们只是通过

创建一个缓存客户端
new DataCache(cacheName, clientConfigurationName)

然后调用GetPut

2 个答案:

答案 0 :(得分:1)

所以我认为这是1.7 SDK中的一个错误,如果2个缓存配置为使用相同的存储帐户存储其配置,那么每个实例似乎都会覆盖其他实例配置,因此您将获得最后一个实例的配置跑步。如果我们重新启动一个角色,则配置包含该角色配置,如果我们然后重新启动另一个角色,那么我们将获得该角色配置。更改每个缓存以使用单独的存储帐户似乎可以解决此问题。

答案 1 :(得分:0)

在我的情况下,这似乎是因为我在一个具有不同命名缓存的azure项目中有两个角色(一个角色4命名为缓存,另一个角色只有1个命名缓存)。发生了我的cacheclusterconfigs blob中的cacheConfig.xml(与共存缓存相关联的存储帐户)被覆盖 - 似乎对于一个部署,只允许为所有角色配置一个命名缓存配置。

所以我想在你的情况下会发生同样的事情。