3

我正在为 Windows azure Web 角色使用基于角色的缓存功能。配置为并置。我已按照 windows azure docs 给出的步骤进行缓存(预览)。我收到以下错误:

ErrorCode <ERRCA0017>:SubStatus<ES0006>:有暂时故障。请稍后重试。(指定的一个或多个缓存服务器不可用,可能是由于网络或服务器繁忙。对于本地缓存集群,还要验证以下条件。确保已为此客户端帐户授予安全权限,并检查 AppFabric所有缓存主机上的缓存服务都允许通过防火墙。服务器上的 MaxBufferSize 必须大于或等于客户端发送的序列化对象大小。)。附加信息:客户端试图与服务器通信:net.tcp://127.255.0.4:20010/。

我以本地主机的身份运行所有内容,使用本地开发存储,我的缓存客户端与服务器的角色相同。更改了许多配置属性,但我总是得到那个 excpection 或类似的“无法连接到 tcp ....”。

我会很感激一些帮助。谢谢。

4

2 回答 2

1

您的应用程序可能会出现一些问题。

首先要确保您的机器中有 SDK 1.7,即使使用 Windows Azure 缓存服务,然后验证您是否有来自 Windows Azure 缓存(而不是来自 Windows Server App Fabric SDK)的参考集。我过去曾见过导致此类错误的此类错误配置。

现在,您是否已将 dataCacheClient、标识符更改为您的角色名称,如此处文档链接中所述。如果您按照描述的文档操作,则不应遇到任何错误,因此为了检查可能出现的问题,您可以创建与此链接中描述的完全相同的应用程序,看看是否有效。

要获取更多详细信息错误,请务必将 DataCacheFactoryConfiguration.ChannelOpenTimeout 值增加到更长的时间,即 2 分钟,然后默认为 20 秒,如此所述。此步骤将帮助您获取有关可能导致问题的实际根本原因的内部异常的详细信息。

于 2012-08-20T21:54:36.047 回答
1

我们使用 Azure 共存缓存(不再是预览版)作为我们的会话支持者,并且经常出现中断。大约一个月一次。

我们尝试使用企业库瞬态故障处理,但是当缓存遇到问题时,我们的实例仍然挂起。我认为瞬态故障代码适用于数据缓存,但对于会话支持,有一些活动更接近于我们似乎无法编写代码的金属。

错误代码在过去一年中变得更加丰富,类似于......

错误代码:子状态:请求超时.. 附加信息:客户端试图与服务器通信:net.tcp://10.xx.xxx.xx:xxxxx/。

到目前为止,从试验和 MS 支持来看,我们最好的猜测是,每个或至少一个位于同一位置的缓存角色/实例都需要了解所有其他实例的 IP,因为 Azure 可以随时销毁和重新启动实例,有时这无法更新依赖实例。这是 Azure 的秘诀,但当我们的网站出现故障时,它就不是秘密了。我正在寻找有关此问题的更多信息,并查看其他人如何解决此问题。

一种可能的解决方法。我们的一位才华横溢的平台管理员发现,在实例上重置 IIS 并再扩展两个实例似乎有助于解决问题。这对我来说很有意义,因为它为缓存提供了另一个机会来收集有关其他实例的所有必需信息。尚未确认这可以解决问题,但如果我们在下一次中断期间重复此操作,它可能是一个有效的解决方法。

于 2013-03-15T17:10:37.313 回答