无法让 Azure 缓存正常工作。 "There is a temporary failure. Please retry later."



所以,今天我

  1. 安装了azure SDK 2.1,并且
  2. 用一个WorkerRole创建了一个新项目
  3. 使用NuGet获得缓存包
  4. 将角色的缓存设置为"并置"
  5. 在app.config中将主机设置为"WorkerRole1"
  6. 对安全部分发表了评论,因为这只是一个测试
  7. 在"Run"`DataCache c=new DataCacheFactory().GetDefaultCache()上插入以下行
  8. 命中调试

在尝试执行上面的行时出现了这个错误:

出现暂时故障。请稍后重试。(一个或多个指定的缓存服务器不可用,这可能是由繁忙的网络或服务器造成的。对于本地缓存群集,还要验证以下条件。确保已为此客户端帐户授予安全权限,并检查是否允许AppFabric缓存服务通过所有缓存主机上的防火墙。此外,服务器上的MaxBufferSize必须大于han或等于从客户端发送的序列化对象大小。)

我环顾四周(大约5个小时),没有找到任何解释。。。有人能帮忙吗?

我安装了旧版本的SDK(1.8和2.0版本),现在它可以工作了。。。转到图…

当云服务项目没有正确升级到2.1时,我遇到过这种情况。确保项目肯定使用2.1 SDK,然后确保所有NuGet包都已更新。最新的Azure Caching NuGet包需要Windows Azure 2.1 SDK。

在我的情况下,当我从指定角色禁用缓存并在计算模拟器中运行托管服务时,我遇到了同样的异常(使用Azure SDK 2.1和Windows Azure Caching 2.1)(我需要这种行为来仅基于csdef配置禁用缓存,而不需要其他设置)。

在以前版本的Azure Caching中,这种情况在DataCacheFactory构造函数中导致了异常,现在我不再有这种异常,但角色在DataCache构造函数调用中挂起了三分钟,然后我得到了您描述的异常。

我已经通过更改检测缓存是否被禁用的代码解决了这个问题——您可以在这个SO问题中阅读更多详细信息。

我遇到了同样的错误,对我来说问题是我从NuGet安装了Caching包(按照这里的说明:http://www.windowsazure.com/en-us/documentation/articles/cache-dotnet-how-to-use-in-role/#NuGet)默认情况下,它安装最新版本,并忽略了我的项目位于旧版本的Azure(2.1)上的事实。因此,缓存包中的一些组件引用了Microsoft.WindowsAzure.Diagnostics,version=2.2.0.0,该版本比项目中引用的Diagnostics程序集的版本更高。

我通过卸载Azure Cache包(2.2版)并在包管理器控制台中运行以下命令手动安装一致版本(2.1版)来修复它:

PM> Install-Package Microsoft.WindowsAzure.Caching -Version 2.1

最新更新