我正在开发一个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>
Run Code Online (Sandbox Code Playgroud)
会话提供程序配置为
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" />
</providers>
</sessionState>
Run Code Online (Sandbox Code Playgroud)
我们自4月以来已经实现了这一点,但最近才开始使用会话来存储更多的数据.我们的测试缓存服务是128 MB,据说允许5个并发连接.根据Azure管理控制台,我们在任何给定时间使用此服务的最多是0.34 MB.
在我们的日志中,我们经常看到此异常:
ErrorCode:SubStatus:暂时失败.请稍后重试.(请求失败,因为您超过了此时的配额限制.如果您经常遇到这种情况,请将订阅升级到更高的订阅限制).附加信息:由于资源限制:连接
根据我读过的文档,默认情况下数据缓存客户端的最大连接数设置为1.我在两个实例上运行,我认为这意味着我使用了两个总连接.
请帮助我理解我做错了什么以及我可以做些什么来解决这个问题.