2

所以,今天我

  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 个小时)并没有找到任何解释......有人可以帮忙吗?

4

4 回答 4

3

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

于 2013-08-30T20:51:00.940 回答
1

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

于 2013-08-30T17:29:28.890 回答
1

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

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

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

于 2013-10-07T18:04:46.350 回答
1

我遇到了同样的错误,对我来说问题是我已经从 NuGet 安装了缓存包(按照这里的说明: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
于 2014-03-08T14:43:32.717 回答