【发布时间】:2011-08-11 10:28:07
【问题描述】:
我们有一个使用 SQL 配置提供程序运行的 3 机器缓存集群。该服务在缓存主机上的域帐户下运行(我们没有使用安全性)。 SQL 服务器也在域用户帐户下运行。我们在网络服务下运行缓存服务时遇到问题,根本无法连接到 SQL。但是这种配置可以让集群顺利启动并运行。
有两种类型的缓存客户端。其中一个缓存客户端是在运行缓存服务的同一域帐户下运行的本机 c++ exe。这些缓存客户端位于不同的机器上。所有此类客户端都可以成功连接到缓存主机。
第二种类型的缓存客户端是在网络服务下运行的 .NET Web 应用程序。此客户端无法将任何内容写入/获取到缓存主机。它能够成功初始化缓存工厂,但失败:
`Creating Region for general use in default cache
Error in Cache Call : ErrorCode<ERRCA0017>:SubStatus<ES0001>:There is a temporary failure. Please retry later. : http://go.microsoft.com/fwlink/?LinkId=164049
at Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody)
at Microsoft.ApplicationServer.Caching.DataCache.CreateRegion(String region)
at CacheAPISample.Program.CreateRegion(String myRegion)
at CacheAPISample.Program.RunSampleTest()
at CacheAPISample.Program.Main(String[] args)`
从错误描述中看不出这是什么类型的错误。我已确保 domain\clientmachinename$ 是允许的缓存客户端。安全和保护已关闭。启用防火墙规则(假设客户端类型 1 可以成功调用,则排除防火墙问题)。
到目前为止我已经尝试过:
使用来自客户端类型 2 的域用户运行示例测试。同时确保域用户是允许的缓存客户端。
主机映射缓存服务器。
我应该怎么做才能找到错误的实际根本原因?缓存主机上的日志是干净的。没有错误。
【问题讨论】:
-
查看我对这个相关问题的回答:stackoverflow.com/questions/6859523/…
-
No Frode,我没有并发 Get 请求问题。相同的示例测试从客户端类型 1 运行。我有另一个堆栈模仿此设置,并且一切正常。我遇到了一些奇怪的 Windows 安全问题,我不是这方面的专家。
-
稍后重试适用于获取和更新设置。另请注意,安全性很重要。您的客户是如何设置的?
-
安全和保护已关闭。安全策略反映了适当的 ACL 从客户端打开到 22233 端口的缓存主机。客户端也可以在 1433 端口访问 SQL 集群,尽管我不确定缓存客户端是否直接与 SQL 对话以读取任何配置数据。您还需要什么信息?