在 Winforms 應用程式中使用 Azure AppFabric 時發生錯誤:伺服器集合不能是空的
英文原文已於 2011 年 10 月 27 日星期四發佈
當我在使用 Windows Azure 的 AppFabric 快取功能時發生了一個許多人也碰過的問題。AppFabric 快取功能是發行版本的快取機制,先前稱為 Velocity。當 AppFabric 所使用的快取 Factory 發生問題時,通常您會看到「伺服器集合不能是空的」的錯誤訊息。不幸的是,這個錯誤十分普遍,相當難以追蹤。這使得解決這項問題變得更加困難了,我有一個已編譯的獨立組件能夠利用快取。當我以 Azure 背景工作角色呼叫該組件時就不會發生任何錯誤。然而,當我新增參照至 Winforms 測試應用程式的組件並嘗試執行時,就會發生令人害怕的錯誤。
在經過好長一段時間的抽絲剝繭、絞盡腦汁的思考及發自內心的深思 (思考我為什麼在這裡,為什麼我要解決這項問題) 之後,我終於找出造成問題的真正主因。即使 Winform 應用程式未直接呼叫快取類別,它依然是主機處理序。這表示需要將背景工作角色應用程式中的所有快取設定項目新增至 Winforms 應用程式的 app.config。就在我新增這些項目之後,所有問題便不再發生。
個人推測這種案例十分普遍,不過由於這類錯誤難以追蹤,因此,特別製作此文章提供給有相同問題的朋友作個參考。
這是翻譯後的部落格文章。英文原文請參閱 Server Collection Cannot Be Empty Error When Using Azure AppFabric Caching in Winforms Application