【问题标题】:Cant get Azure Cache to work. "There is a temporary failure. Please retry later."无法让 Azure 缓存工作。 “暂时失败,请稍后重试。”
【发布时间】:2013-08-28 20:06:09
【问题描述】:

所以,今天我

  1. 安装了 azure SDK 2.1,并且
  2. 使用单个 WorkerRole 创建了一个新项目,
  3. 使用 NuGet 获取缓存包,
  4. 将角色的缓存设置为“并置”
  5. 在 app.config 中将 Host 设置为“WorkerRole1”
  6. 评论了安全部分,因为这只是一个测试
  7. 在“运行”中插入以下行 `DataCache c = new DataCacheFactory().GetDefaultCache();
  8. 点击调试

并在尝试执行上面的行时遇到此错误:

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

我环顾了很多(大约 5 个小时),但没有找到任何解释...有人可以帮忙吗?

【问题讨论】:

  • 只是好奇——如果你只有一个工作角色,主机名应该是WebRole1吗?
  • 是的,尝试将 WebRole1 更改为 WorkerRole1 或工作角色的实际名称
  • 操作是个错字!我的坏

标签: caching azure azure-caching


【解决方案1】:

我安装了旧版本的 SDK(版本 1.8 和 2.0),现在它可以正常工作了...去看看...

【讨论】:

  • 我浪费了一整天的时间,终于找到了你的答案。它就像一个魅力。谢谢。
【解决方案2】:

当云服务项目未正确升级到 2.1 时,我遇到了这个问题。确保项目确实使用 2.1 SDK,然后确保所有 NuGet 包都已更新。最新的 Azure 缓存 NuGet 包需要 Windows Azure 2.1 SDK。

【讨论】:

  • 问题是我没有收到 DLL 异常或类似的东西......但我会检查一下
  • 如果 DLL 的版本不匹配,这可能是有意义的。祝你好运!
【解决方案3】:

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

在以前版本的 Azure 缓存中,此方案导致 DataCacheFactory 构造函数中出现异常,现在我不再有此异常,但角色在 DataCache 构造函数调用中挂起三分钟,然后我得到了异常描述。

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

【讨论】:

    【解决方案4】:

    我遇到了同样的错误,对我来说,问题是我已经从 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,该版本比项目中引用的诊断程序集更高。

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

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

    【讨论】:

    • 经过 6 小时的反复试验,我找到了您的帖子。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 2015-03-11
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多