1

我们有 AppFabric 缓存集群服务器,我可以使用我的开发机器作为客户端来使用它。为了模拟访问缓存集群服务器的不同 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>

上述配置更改后..我收到以下错误:

套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为

我没有配置的代码如下。它在我的开发机器上作为客户端工作,而不是从虚拟机作为客户端工作。我能够从 VM 客户端 ping 缓存集群服务器。

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();
    }
}
4

1 回答 1

1

服务器已拒绝客户端凭据。

将 VM 添加到与我的开发机器相同的域后,此问题已得到解决。

于 2012-11-28T23:05:55.003 回答