AppFabric - 很好,很快就结束了?

时间:2014-01-15 00:38:41

标签: c# appfabric-cache

在痛苦地尝试使用Appfabric Caching(1.1)启动并运行虚拟环境之后,我能够将2个节点运行到1个缓存集群中。 两者都表明系统很好。以前,它不是,而且是一种痛苦。

所以我现在正在创建一个演示应用。 该应用程序正在主机上开发,可以连接到虚拟环境(使用VMware,它们都在除主机之外的域中)。

我可以把东西放在缓存中,我可以看到缓存统计信息,它反映了我放在缓存中的内容。 但是当得到 - 它失败了!它只是超时而且不知道为什么或去哪里:

? u.Email
"36277@bloggs.com"
? CacheManager.Instance.Cache.GetCacheItem(u.Email)
'CacheManager.Instance.Cache.GetCacheItem(u.Email)' threw an exception of type 'Microsoft.ApplicationServer.Caching.DataCacheException'
    base {System.Exception}: {"ErrorCode<ERRCA0018>:SubStatus<ES0001>:The request timed out.. Additional Information : The client was trying to communicate with the server : net.tcp://AppFabricTwo.appfabric.demo.com:22233"}
    ErrorCode: 18
    HelpLink: "http://go.microsoft.com/fwlink/?LinkId=164049"
    Message: "ErrorCode<ERRCA0018>:SubStatus<ES0001>:The request timed out.. Additional Information : The client was trying to communicate with the server : net.tcp://AppFabricTwo.appfabric.demo.com:22233"
    SubStatus: -1
    TrackingId: {00000000-0000-0000-0000-000000000000}

我有AppFabricOne和AppFabricTwo。我可以在它们之间进行通信没有问题,我可以从HOST计算机本身(托管虚拟机)ping并访问这两个

为什么会这样做以及该怎么做? VM计算机上的Windows防火墙全部被禁用,并且这些防火墙连接到域(并使用SQL)。

我的代码:

添加:

Random r = new Random();
int idChosen = r.Next(1, 99999);
User u = new User { LastName = "Bloggs", FirstName = "Joe", CellPhone = "(555) 555-5555", DOB = DateTime.Today.AddYears(-30), UserID = idChosen, Email = idChosen.ToString() + "@bloggs.com" };
DataCacheItemVersion item = CacheManager.Instance.Cache.Put(u.Email, u, this.txtRegion.Text);

检索:

CacheManager.Instance.Cache.GetCacheItem(u.Email)

是的,我也尝试过GetRegionItem,但仍然给我带来与GetCacheItem相同的错误。

1 个答案:

答案 0 :(得分:0)

您是否使用相同的DataCacheFactory对象来获取缓存项,就像您将项目放入缓存一样? PUT工作和GET的事实并没有让我认为它们是不同的datacachefactory对象。

您是否能够从客户端计算机ping到FQDN AppFabricTwo.appfabric.demo并解析为正确的IP地址I.e.与appfabrictwo相同?另外检查telnet到端口22233正在从您的客户端工作(如果放置工作,这应该可以工作,但