我正在开发一个MVC 3站点,该站点位于Windows Azure中,配置为使用DistributedCacheSessionStateStoreProvider进行会话状态,而后者又在内部使用Azure缓存。缓存配置为:
<dataCacheClients>
<dataCacheClient name="default">
<hosts>
<host name="test.cache.windows.net" cachePort="XXXX" />
</hosts>
<securityProperties mode="Message">
<messageSecurity authorizationInfo="XXXX">
</messageSecurity>
</securityProperties>
<transportProperties receiveTimeout="45000" />
</dataCacheClient>
</dataCacheClients>
会话提供程序配置为
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" />
</providers>
</sessionState>
自4月以来,我们已经实现了这一点,但最近才开始使用会话存储更多数据。我们的测试缓存服务是128 MB,据说允许5个并发连接。根据Azure管理控制台,我们在任何给定时间使用此服务的最多是0.34 MB。
在我们的日志中,我们经常看到此异常:
ErrorCode:SubStatus:暂时失败。请稍后重试。 (请求失败,因为您超过了此时的配额限制。如果您经常遇到这种情况,请将订阅升级到更高的订阅限制)。附加信息:由于资源限制:连接
根据我读过的文档,默认情况下数据缓存客户端的最大连接数设置为1.我在两个实例上运行,我认为这意味着我使用了两个总连接。
请帮助我理解我做错了什么,以及如何解决这个问题。
答案 0 :(得分:1)
您不会受到存储使用的限制。您还会受到每小时交易和每小时带宽的限制。对于128MB缓存:
你可能会遇到这两种边界条件中的一种吗?
有关AppFabric Cache SLA的更多详细信息,请查看此MSDN blog post。