对不起,对此并不是很多,但是我们非常感谢正确方向的一些指示。
我有一个Azure云服务,其中包含Web角色和专用缓存工作者角色。在Web角色中,我在Web Api控制器中使用了这样的缓存:
var cacheFactory = new DataCacheFactory();
_cache = cacheFactory.GetDefaultCache();
在web.config中:
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="MyProject.Workers.MyCache" />
</dataCacheClient>
使用Azure模拟器在本地工作正常,但在部署到Azure时,控制器方法超时(大约15分钟后!)。我唯一的错误信息是:
ErrorCode:SubStatus:暂时失败。请稍后重试。 (一个或多个指定的缓存服务器不可用,这可能是由繁忙的网络或服务器引起的。对于内部部署缓存集群,还要验证以下条件。确保已为此客户端帐户授予安全权限,并检查AppFabric允许缓存服务通过所有缓存主机上的防火墙。服务器上的MaxBufferSize也必须大于或等于从客户端发送的序列化对象大小。)。附加信息:客户端尝试与服务器通信:net.tcp://MyProject.Workers.MyCache:24233。
编辑:
尝试使用Web角色本身进行缓存时类似的缺乏成功:
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="MyProject.WebRole" />
<localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
<clientNotification pollInterval="60" />
</dataCacheClient>
没有任何东西从服务器回来。它甚至没有超时!