我已经设置了一个appfabric(v1.1)缓存服务器。该服务在服务帐户下运行,群集配置存储在 SQL Server 中。服务帐户在 SQL Server 上具有权限,并且能够成功配置。
使用服务帐户用户打开管理控制台时,可以访问缓存。
但问题是当我尝试从另一台机器连接到此缓存服务时,它无法连接。
ErrorCode<ERRCA0017>:SubStatus<ES0006>:There is a temporary failure. Please retry later
当我尝试在文件共享和"NetWorkService"帐户中运行的服务中使用xml配置时,我能够连接。
在缓存服务器上验证以下设置。
- 服务已在端口 22233 上启动并运行。
- 防火墙已关闭。
- 客户端计算机被授予访问缓存群集的权限。
将 AppFabric 缓存作为"网络服务"以外的任何内容运行。
以下是暗示限制的官方文档:
安装缓存服务以在网络服务下运行 帐户。这意味着对于通过网络进行操作,缓存 服务使用缓存服务器域的安全凭据 计算机帐户。缓存服务使用较低特权 网络服务帐户,以帮助减轻可能造成的损害 由恶意攻击引起
但是,如果您觉得没有说服力,那么来自MS人员的论坛帖子:
不支持以域用户身份运行的速度服务。
如果你认为这是一个可怕的限制...我同意你的看法。
AppFabric 缓存是 100% WCF 实现。遇到此问题时,我打开了 WCF 跟踪,发现异常"目标主体名称不正确"。AppFabric 缓存不会公开配置原则的功能。
在我使用在域帐户下运行的缓存进行测试时,我发现如果我跨域边界调用缓存:它有效。如果我从同一域中调用它,它会失败。我的基础结构人员说,根据凭据在不同场景中的呈现方式,这种行为对他来说是有意义的。
其他人看看这个:http://blogs.msdn.com/b/appfabriccat/archive/2010/11/03/appfabric-cache-cache-servers-and-cache-clients-on-different-domains.aspx
让我很头疼。
基本上必须使用我的 AppFabric 服务器的 IP 地址和实际服务器名称更新我的主机文件。
这解决了我遇到的错误