我有一个使用Azure网站托管的asp.net Web应用程序,该网站使用Azure托管缓存来检索和存储缓存对象。该应用程序工作正常,直到最近我们开始遇到超时和错误:
ErrorCode:SubStatus:连接已终止, 可能是由于服务器或网络问题或序列化对象大小 大于服务器上的MaxBufferSize。请求的结果是 未知..附加信息:客户端正在尝试 与服务器通信: 的net.tcp://foo.cache.windows.net:22233
和
ErrorCode:SubStatus:请求超时.. 附加信息:客户端正在尝试与之通信 server:net.tcp://foo.cache.windows.net:22233
查看两个错误的堆栈跟踪,它们都指向cache.Get("key")
行,所以我不确定为什么它会说serialized Object size is greater than MaxBufferSize
。此外,查看缓存对象的监视器选项卡显示平均大小以字节为单位204 KB(最大215),这意味着它不会达到Azure允许的8 MB的MaxBufferSize。除非,这不是默认值。
代码非常简单:
DataCacheFactory cacheFactory = new DataCacheFactory();
myCache = cacheFactory.GetDefaultCache();
var retVal = myCache.Get("MyKey") as List<string>();
if (retVal == null)
{
retVal = GetFromDB();
myCache.Put("MyKey", retVal, TimeSpan.FromHours(1.0));
}
我在这里缺少什么?我该如何解决这个问题?
答案 0 :(得分:1)
存在影响托管缓存服务的某些用户的问题。如需帮助,您可以直接联系Azure支持或缓存团队,电子邮件地址为azurecache@microsoft.com'。