Windows Azure DriveでERROR_UNSUPPORTED_OSが発生する
SDK 1.3で、CloudDrive.InitializeCache() とCloudDrive.Mount() が、たまにERROR_UNSUPPORTED_OSで失敗するとの報告を受けました。
Azure CloudDrive サービスのOSが起動する前に、CloudDrive API を呼び出した時に、このエラーが発生します。旧バージョンのSDKでは、アプリケーションの開始が遅かったので、Azure CloudDrive サービスが起動しきった後に、起動していました。
この問題は将来バージョンで修正する予定です。修正するまでは、CloudDrive API を呼び出したときに、問題が発生した場合は、リトライすることを推奨します。CloudDrive.InitializeCache()を以下のサンプルコードのようにリトライします。
CloudDrive.CreateやCloudDrive.Mount、CloudDrive.GetMountedDrivesを含むCloudDrive APIsを最初に呼び出したときに、ループを回すようにします。
For (int i = 0; i < 30; i++) { try { CloudDrive.InitializeCache(localCache.RootPath,localCache.MaximumSizeInMegabytes); break; } catch (CloudDriveException ex) { if (!ex.Message.Equals("ERROR_UNSUPPORTED_OS") || i == 29) throw; Thread.Sleep(10000); } }