您对创建本地存储有一些误解。当您调用以下代码时,它不会为您创建本地存储,而是返回给您在应用程序设置期间创建的本地存储对象的实例:
LocalResource ls = RoleEnvironment.GetLocalResource("mystorage");
要在您的应用程序中定义本地存储,您可以直接在 CSDEF 中添加以下内容(以下设置将创建一个本地存储名称 mystorage,大小为 2GB,如果任何情况下 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.