所以,今天我
- 安装了azure SDK 2.1,并且
- 用一个WorkerRole创建了一个新项目
- 使用NuGet获得缓存包
- 将角色的缓存设置为"并置"
- 在app.config中将主机设置为"WorkerRole1"
- 对安全部分发表了评论,因为这只是一个测试
- 在"Run"`DataCache c=new DataCacheFactory().GetDefaultCache()上插入以下行
- 命中调试
在尝试执行上面的行时出现了这个错误:
出现暂时故障。请稍后重试。(一个或多个指定的缓存服务器不可用,这可能是由繁忙的网络或服务器造成的。对于本地缓存群集,还要验证以下条件。确保已为此客户端帐户授予安全权限,并检查是否允许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