使用Windows Azure缓存时出现异常:未知此类主机

时间:2013-08-01 10:13:41

标签: caching azure

我正在尝试使用Azure并尝试使用缓存功能。我创建了一个云服务项目,并添加了一个缓存工作者角色和一个Web角色。我将“Windows Azure Caching”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

3 个答案:

答案 0 :(得分: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

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

答案 1 :(得分: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

答案 2 :(得分:1)

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

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

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