私は次のようにこの問題の序文を書いてみましょう:私はストレージエミュレータを使ってこれをテストしました。(SDK 1.5)Azure Blob Leaseは、正常でない終了時に解放されませんか?
すぐに構築されたコンソールアプリケーションとローカルストレージエミュレータを使用して、アプリケーションが異常終了したときのBLOBリースの動作をテストするフェイルシナリオを作成しました。 Azureのプロダクションバージョンでは、単一のBLOBにアクセスしてリースでロックする複数のWebロールインスタンスの形式になります。私はWebロールインスタンスが失敗してしまったので、これは良いテストシナリオであると考えました。
アプリは特定のブロブのリースを取得し、リースリリース前にブレークポイントに当たってコンソールアプリケーションを手動で強制終了します。コンソールアプリケーションを再実行して新しいリースを取得しようとすると、競合エラー409が発生します。この動作は、最初のリース取得(および異常終了)の後にもかなりの期間表示されます。
私は知っています...私はただ雲にそれを押し出して何が起こるか見るべきですが、私はまだ機会がありませんでした。
この動作は、ちょっと変わったストレージエミュレータのケースかAzureは同じように動作しますか?
私はそれに向かって傾いているだけでもエミュレータです。 24時間後にテストアプリを起動しても、それはまだ別のプロセスが保持しているリースを示しています。誰かが本当の失敗から野生でこれを経験したかどうかを知りたかっただけです。 – BeerGuy
ええ、私が思い出すように、リースはエミュレータではまったく期限切れではありません。ちょうどストレージエミュレータのバグ。実際にアプリをWindows Azureに公開しなくてもクラウドストレージを試すことができます。 (ちょうどストレージアカウントを作成し、正しい接続文字列を使用してください) – smarx
うん、ちょっと変なエミュレータ。クラウドでブロブストレージを使用する場合は、チャンピオンのように動作します。 – BeerGuy