2011-11-08 29 views
1

讓我用下面這個問題序言:我只使用存儲模擬器測試過這個問題。(SDK 1.5。)Azure Blob租賃不會在不正常退出時釋放?

使用快速構建控制檯應用程序和本地存儲模擬器,我創建了一個失敗的場景來測試一個blob租賃在非正常退出應用程序的行爲。在Azure生產版本中,它將以多個Web角色實例的形式訪問單個blob並通過租約進行鎖定。我有網絡角色實例失敗,所以我認爲這將是一個很好的測試場景。

該應用程序獲取特定blob的租約,在租賃發佈前點擊一箇中斷點,並手動終止控制檯應用程序。當我重新運行控制檯應用程序並嘗試獲得新的租約時,我得到了衝突錯誤409.這種行爲甚至在第一次租賃收購(並非不合格退出)後很長一段時間纔出現。

我知道,我知道......我應該把它推送到雲端,看看會發生什麼,但我還沒有機會。

這種行爲僅僅是古怪存儲模擬器的一種情況,還是Azure的行爲方式相同?

回答

1

如果超過2分鐘,它可能只是模擬器。在2分鐘之內,我預計可能無法獲得租約(不強迫它)。我其實從來沒有在模擬器中測試過這個,但它在雲中效果很好...

+0

我傾向於它只是模擬器。即使在24小時後啓動測試應用程序,它仍顯示另一個進程持有租約。只是想知道是否有人從真正的失敗中經歷過這樣的事情。 – BeerGuy

+4

是的,據我所知,租賃在仿真器中根本不會過期。只是一個存儲模擬器錯誤。請注意,您可以嘗試雲存儲,而無需將您的應用程序實際發佈到Windows Azure。 (只需創建一個存儲帳戶並使用正確的連接字符串。) – smarx

+0

是的,只是古怪的模擬器。在雲中使用Blob存儲時,像冠軍一樣工作。 – BeerGuy