ローカル ストレージの作成について、いくつかの誤解があります。以下のコードを呼び出すと、ローカル ストレージは作成されず、アプリケーションのセットアップ中に作成されたローカル ストレージ オブジェクトのインスタンスが返されます。
LocalResource ls = RoleEnvironment.GetLocalResource("mystorage");
アプリケーションでローカル ストレージを定義するには、CSDEF に以下を直接追加します (以下の設定では、ローカル ストレージ名 mystorage、サイズ 2 GB が作成されます。VM が再起動されるかロールが再起動される場合、ローカル ストレージはクリーンではなく、コンテンツはまだそこにあります)。 :
<LocalResources>
<LocalStorage cleanOnRoleRecycle="false" name="mystorage" sizeInMB="2048" />
</LocalResources>
ローカル ストレージを追加するには、->> [ Visual studio > Role Properties > Local Storage > Add Local Storage ] オプションも選択できます。
Windows Azure アプリケーションでローカル ストレージを定義すると、Azure VM のドライブ C: に以下のように新しいフォルダーが追加されます。これは、VM の起動時に VM でロールがプロビジョニングされているときに行われます。
[In Azure VM]
C:\Resources\directory\[Your_deploymentID].[your_webrolename]_[Role_Instance_Count]\
[In Compute Emulator]
// Lunch your application in Compute Emulator and then open "Compute Emulator UI" to see the Local Storage Path in the command window related to your instance:
C:\Users\avkashc\AppData\Local\dftmp\Resources\3503509c-2112-45ea-8d63-377fe9f78491\directory\mystorage\
上記のローカル ストレージ固有の設定を ServiceDefinition.CSDEF に追加すると、ローカル ストレージが作成され、次のコードが機能します。
LocalResource ls = RoleEnvironment.GetLocalResource("mystorage");
ls.Root // returns the correct local storage path
// Now you can use ls to read/write your data.