8

我正在尝试开始使用 Azure 并尝试使用缓存功能。我创建了一个云服务项目并添加了一个缓存工作者角色和一个 Web 角色。我将“Windows Azure 缓存”nuget 安装到两个角色的项目中,并在 Web 角色的 web.config 中的 DataCacheClients 元素中添加了缓存工作者角色的名称作为标识符。

我在 web 角色中添加了以下代码:

DataCacheFactory cf = new DataCacheFactory();
DataCache c = cf.GetDefaultCache();

当我尝试在模拟器上本地运行它时,出现以下异常:

    ErrorCode<ERRCA0017>:SubStatus<ES0006>:There is a temporary failure. 
    Please retry later.  (One or more specified cache servers are unavailable, 
which could be caused by busy network or servers.  For on-premises cache clusters, 
also verify the following conditions. Ensure that security permission has  been granted 
for this client account, and check that the AppFabric Caching Service is allowed through 
the  firewall on all cache hosts. Also the MaxBufferSize on the server must be greater
 than or equal to the  serialized object size sent from the client.). 
Additional Information : The client was trying to communicate  with the server: net.tcp://MvcWebRole1:24233.


Inner Exception : No such host is known

你能告诉我我在这里想念什么吗?

使用的 Azure SDK:v2.0

4

3 回答 3

14

你的问题的时机再好不过了。我们也面临着完全相同的问题,并且一直在摸索问题可能是什么。我们有一个项目,一切都运行良好,而在一个项目中,我们遇到了同样的错误。根据我们的研究,我们已经确定了用于缓存的 Nuget 包的问题。昨天似乎发布了一个新版本(2.1.0.0),我们发现如果我们安装该软件包,就会出现此错误。您可以检查您的情况下的软件包版本吗?文档指出,这个新版本只能与今天发布的最新 SDK (2.1) 一起使用。

一种解决方案是卸载 2.1.0.0 版并安装 2.0.0.0 版。要安装 2.0.0.0 版,请打开包管理器控制台 ( View --> Other Windows --> Package Manager Console) 并在此处键入以下命令:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0

这解决了我们的问题。希望它也能解决你的问题。

于 2013-08-01T13:04:00.440 回答
2

这是一个指向 Windows Azure 云集成工程博客的链接,其中介绍了如何处理同样的问题。他们建议升级到 Azure SDK v 2.1 或按照接受的答案状态回滚。

http://blogs.msdn.com/b/cie/archive/2013/08/08/windows-azure-caching-2-1-0-0-no-such-host-is-known.aspx

于 2013-08-28T20:43:12.667 回答
1

如果客户端库配置中的角色没有配置缓存,则在计算模拟器下也可能发生此异常。就我而言,这是故意发生的,因为缓存模拟器存在一些问题,可能会减慢服务的测试和调试速度。

在以前版本的 Windows Azure 缓存中,在这种情况下,构造DataCacheFactory会失败并出现异常(由我的代码处理);使用 Windows Azure 缓存 2.1(和 Azure SDK 2.1)在相同的场景中,代码会将角色名称视为服务器地址,因此在DataCache构造时会尝试与不存在的缓存进行通信——这会导致 3 分钟的等待和问题中报告的异常。

我已更改我的代码以检测此方案的新情况 - 您可以在此 SO question中找到更多详细信息。

于 2013-10-07T18:10:21.597 回答