2014-01-15 86 views
1

經過痛苦地嘗試讓我的虛擬環境啓動並使用Appfabric Caching(1.1)運行後,我能夠將2個節點運行到1個緩存集羣中。 這兩個顯示系統是好的。以前,這不是,而且是一種痛苦。AppFabric - 罰款,超時?

所以我現在創建一個演示應用程序。 該應用程序正在主機上開發,該主機可以連接到虛擬環境(使用VMware並且它們都位於除主機之外的域中)。

我可以把東西在緩存中,我可以看到緩存的統計數據反映了什麼我已經把在緩存中。 但是,當它 - 失敗!它只是超時,不知道爲什麼或去哪裏:

? u.Email 
"[email protected]" 
? 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。我可以在它們之間溝通沒有問題,我可以ping主機和從計算機本身訪問這些2(其託管虛擬機的)

任何想法,爲什麼這會是什麼呢? 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。

回答

0

您是否使用用於獲取緩存項目您使用的是放入緩存項目一個相同DataCacheFactory對象? PUT的工作原理和GET並沒有讓我認爲他們是不同的datacachefactory對象。

也是您可以從您的客戶機ping通FQDN AppFabricTwo.appfabric.demo並且它解析爲正確的IP地址即與appfabrictwo相同?還要檢查的telnet端口22233是從客戶端的工作(如果把作品這應該反正雖然

+0

感謝您的答覆。是的,我現在用的是同一個DataCacheFactory對象獲得的項目。我確實能夠ping通FQDN在AppFabricTwo和AppFabricOne上 –

+0

我剛剛注意到你正在把物品放在一個特定的區域,但是在Get調用期間,我沒有看到包含區域,如果你沒有指定區域,然後只是做一個get ,這是否工作? –

+0

嗯,我也嘗試過GetRegionItem,我仍然有同樣的問題。它可以在單個工作站上正常工作,但我想在域中使用一組機器來完成此操作並能夠訪問它。 –