Azureにデプロイしたらロールステータスが Initializing ~ Busy ~ Stopping ~のループで一向に Readyにならない
November2009SDKのthumbnailサンプルをステージング環境にデプロイしてみた。
そしたら、ロールのステータスが Initializing ~ Busy ~ Stopping でループしているようで、いつまでたってもReadyにならない。
なんだろな?と思って調べてたら、どうやらクラウドサービス構成ファイルのDiagnosticsConnectionStringに書いてる接続文字列が “UseDevelopmentStorage=true” になっててストレージに接続できないからだった。
OnStartメソッドのオーバーライドでの DiagnosticMonitor.Start("DiagnosticsConnectionString") 、ここで例外が出て停止してしまうのだろう。
ステージングやプロダクション環境では、当然、開発ストレージは使用できない。本当のAzureストレージを使用しなければならない。接続文字列の書式は下記の通り。(thumbnailサンプルにあり)
<Setting name="DataConnectionString" value="DefaultEndpointsProtocol=https;AccountName=YourAccountName;AccountKey=YourAccountKey" />
<Setting name="DiagnosticsConnectionString" value="DefaultEndpointsProtocol=https;AccountName=DiagnosticsAccountName;AccountKey=DiagnosticsAccountKey" />
いつまでもリトライしてないで、接続できないならできないでそのように通知して欲しい。
.cscfgを修正することで正常に起動することができた。しっかし、Initializing から Ready に変わるまで、すっげー時間が掛かる。予想以上に。異常が起こってるんじゃね?って思っちゃうほど。
さて、次は自作のAzureアプリをもう1度デプロイしてみよ。実は自作のが Initializing → Stopping に直行してしまい開始できなかったので、ミニマムなサンプルではどうなんだ?と試していたところなのでした。