我们的AppFabric缓存群集服务器,我可以用我的dev的机器作为客户端它的工作。 为了模拟不同的Web服务器访问缓存集群服务器,我创建了一个VMware虚拟机,并安装Visual Studio 2010和我的Web应用程序。 从VM的客户,当我尝试获得缓存,我得到以下错误...请帮助..谢谢..
错误代码:子状态:有一个临时故障。 请稍后再试。 (一个或多个指定的缓存服务器不可用,这可能是网络繁忙或服务器引起的。对于本地缓存集群,也验证了以下条件:确保安全权限已被授予此客户帐户,并检查的AppFabric缓存服务是通过在所有缓存主机防火墙。另外在服务器上的MAXBUFFERSIZE必须大于或等于从所述客户端发送的序列化的对象的大小。)
我注意到,内部异常是
服务器拒绝了客户端证书。
所以..经过一番研究。我添加了以下行来我的配置
<securityProperties mode="None" protectionLevel="None" />
所以,现在,我的dataCacheClient配置如下所示:
<dataCacheClients>
<dataCacheClient name="default">
<localCache
isEnabled="true"
sync="NotificationBased"
objectCount="10000"
ttlValue="5" />
<hosts>
<host name="MyCacheClusterServerMachine" cachePort="22233" />
</hosts>
<securityProperties mode="None" protectionLevel="None" />
</dataCacheClient>
上述配置变更后..我收到以下错误:
套接字连接被中止。 这可能是一个错误处理您的信息或接收超时引起的远程主机,或底层网络资源问题被超过。 本地套接字超时是
我的代码出来的配置如下。 它从我的开发机可以作为客户端,但不能从虚拟机作为客户端。 我能ping从VM客户端缓存集群服务器。
class Program
{
static void Main(string[] args)
{
var config = new DataCacheFactoryConfiguration();
var servers = new List<DataCacheServerEndpoint>();
servers.Add(new DataCacheServerEndpoint("MyCacheClusterServerMachine", 22233));
config.Servers = servers;
var factory = new DataCacheFactory(config);
var cache = factory.GetDefaultCache(); <---- error here ********
var key = "CachedObjectKey";
var obj = cache[key];
if (obj == null)
{
obj = "here is a string to cache";
cache.Add(key, obj);
Console.WriteLine("object was not in cache");
}
obj = cache.Get(key);
Console.WriteLine(obj.ToString());
Console.ReadLine();
}
}