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

Caching 使用Windows Azure缓存时出现异常:未知此类主机,caching,azure,Caching,Azure,我正在尝试开始使用Azure并尝试使用缓存功能。我创建了一个云服务项目,并添加了一个缓存工作者角色和一个web角色。我在这两个角色的项目中安装了“Windows Azure Caching”nuget,并在web角色的web.config中的DataCacheClients元素中添加了缓存工作角色的名称作为标识符 我在web角色中添加了以下代码: DataCacheFactory cf = new DataCacheFactory(); DataCache c = cf.GetDefaultCa

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

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

DataCacheFactory cf = new DataCacheFactory();
DataCache c = cf.GetDefaultCache();
当我尝试在emulator上本地运行时,会出现以下异常:

    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
ErrorCode:SubStatus:出现临时故障。
请稍后重试。(一个或多个指定的缓存服务器不可用,
这可能是由繁忙的网络或服务器造成的。对于本地缓存群集,
还要验证以下条件。确保已授予安全权限
并检查AppFabric缓存服务是否允许通过
所有缓存主机上的防火墙。服务器上的MaxBufferSize也必须更大
大于或等于从客户端发送的序列化对象大小。)。
其他信息:客户端正在尝试与服务器:net通信。tcp://MvcWebRole1:24233.
内部异常:不知道这样的主机
你能告诉我我在这里错过了什么吗


Azure SDK使用:v2.0

提问的时机再好不过了。我们也面临着完全相同的问题,并且正在绞尽脑汁思考问题可能是什么。我们有一个项目,所有的工作都很好,在一个项目中,我们得到了同样的错误。根据我们的研究,我们发现了Nuget包缓存的问题。似乎昨天发布了一个新版本(2.1.0.0),我们发现如果安装该软件包,就会出现此错误。你能检查一下你箱子里的包装版本吗?文档说明,此新版本只能与今天发布的最新SDK(2.1)一起使用

一种解决方案是卸载版本2.1.0.0,然后安装版本2.0.0.0。要安装版本2.0.0.0,请打开软件包管理器控制台(
查看-->其他窗口-->软件包管理器控制台
),然后在那里键入以下命令:

Install-Package Microsoft.WindowsAzure.Caching -Version 2.0.0.0

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

这里有一个指向Windows Azure云集成工程博客的链接,介绍如何处理同样的问题。他们建议升级到Azure SDK v 2.1,或者按照公认的答案进行回滚


如果客户端库配置中的角色没有配置缓存,则在compute emulator下也可能发生此异常。在我的例子中,这是故意的,因为缓存仿真器存在一些问题,可能会减慢服务的测试和调试

在以前版本的Windows Azure缓存中,在此场景中,
DataCacheFactory
的构造将失败,并出现异常(由我的代码处理);在这个场景中,Windows Azure缓存2.1(和Azure SDK 2.1)代码将角色名视为服务器地址,因此在<代码> DATACHACE < /代码>构建中将尝试与不存在的缓存进行通信,这导致3分钟的等待和异常的报告。
我已经更改了代码以检测此场景的新情况——您可以在中找到更多详细信息。

,而且回答的时间安排也非常好。它解决了我的问题。谢谢。我很好奇你是如何找出根本原因的……我花了几个小时来解决这个问题,但没有用……分享调试技术来识别这些问题将非常有帮助。我们有一个项目,其中所有工作都非常好,我们在一个项目中遇到了这个错误。我只是比较了这两个项目,发现两个项目中的WindowsAzure.Caching dll的版本都有变化。我删除了新的dll(2.1.0.0)并引用了旧的dll(2.0.0.0),它工作得很好。谢谢。我想是这样的:“他们建议升级到Azure SDK v 2.1,或者按照公认的答案进行回滚。”不幸的是,这个问题的时机对我来说也很好。:-)