Azure角色内缓存ErrorCode <errca0017>:SubStatus <es0006>存在临时故障。请稍后重试</es0006> </errca0017>

时间:2014-02-12 03:03:37

标签: asp.net asp.net-mvc-3 caching azure azure-caching

我遇到了一个非常奇怪的问题,试图让角色缓存工作。我在当前部署中只有1个Web角色,并根据MSDN文档和博客设置了角色内缓存。关于相同的缓存错误,我已经查看了关于SO的所有类似问题,但是没有解决方案对我有用,我的情况有点不同。我花了几个小时谷歌搜索,测试,似乎没有任何工作。

该项目在本地工作正常,当我第一次将其推送到Azure时。事实上,如果我是网站上唯一的一个,它似乎工作正常(虽然它很慢)。在与我的合作伙伴进行QA时,我开始注意到,在我们浏览网站的短暂时间之后,它崩溃了。起初它似乎卡住了,只是在那里旋转而从未收到回应。但过了一段时间,我们最终会得到上面列出的错误的YSOD。一旦发生错误,所有后续请求都会突然出现上述错误,直到我终止w3wp进程。然后重复整个过程。我们存储在缓存中的数据现在非常小(远低于8mb的限制)。

它似乎非常间歇性,但在使用工具loader.io来测试并发用户之后,它会在发出一些请求之后始终被“卡住”(意味着开始抛出上述错误)以及之后的所有请求。

我也为会话和输出缓存配置了AFCacheSessionStateProvider和AFCacheOutputCacheProvider。

试图让DataCache代码工作几小时后(我甚至通过Microsoft Enterprise块实现了重试策略),我终于尝试将Get和Put [wrapper]的调用切换为使用HttpContext.Current.Session而不是DataCache对象。唉,没有更多的appfabric缓存错误。 Loader.io能够成功运行500个并发用户而没有1个错误/不成功的连接,我认为它是通过AFCacheSessionStateProvider正确缓存的。此外,在通过DataCache切换到Session对象后,网站似乎运行得非常快。

为了给出一些简短的上下文,我们通过http模块(PostAcquireRequestState事件)在每个请求开始时访问缓存,以便为当前身份验证的身份加载用户信息[其他数据中的权限声明]。

虽然它正在使用Session []对象,但我们仍然希望利用AppFabric缓存api并最终转移到仍处于预览状态的新缓存数据服务。为什么这不起作用?此外,关闭DataCache对象后对速度提升的任何解释?

0 个答案:

没有答案