0

我们有一个部署已经使用缓存角色一段时间(没有真正的问题),并且我们最近在一个实例上添加了一个共置缓存。

由于我们添加了这个并置缓存,我们开始偶尔会看到这个错误:

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

4

2 回答 2

1

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

于 2013-06-10T09:21:48.017 回答
0

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

所以我想和你的情况一样。

于 2014-01-07T11:28:10.010 回答