2

を呼び出す理由がわかりません:

LocalResource ls = RoleEnvironment.GetLocalResource("mystorage");

ls.RootPath;

ローカル フォルダが作成されていません。その仕組みがわかりません。私にとっては、作成されるのはローカルパスです。だから私は持っているべきです。

C:\Resources\directory\xxx.HelloAzureWeb.mystorage\

しかし、そのようなファイルはありません。

編集: 私がやろうとしているのは、いくつかの xml シーン保存ファイルを保存することです。Unity アプリケーションでは、これらのファイルを投稿 (保存) して取得 (使用) する必要があります。

4

4 に答える 4

2

私の場合、ストレージエミュレーターのBLOBに保存するファイルはになりますC:\Users\[username]\AppData\Local\DevelopmentStorage\LDB\BlockBlobRoot。残念ながら、それらはあまり役に立ちません。これは単なるGUIDの集まりですが、ファイルサイズは正しく見えます。

于 2012-10-25T19:33:23.000 に答える
2

ローカル ストレージの作成について、いくつかの誤解があります。以下のコードを呼び出すと、ローカル ストレージは作成されず、アプリケーションのセットアップ中に作成されたローカル ストレージ オブジェクトのインスタンスが返されます。

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.
于 2012-05-16T15:13:16.920 に答える
1

ASP.NETWebロールでローカルストレージにアクセスする方法は次のとおりです。

ステップ1:非常に単純なASP.NETWebロールプロジェクトを作成しました

ステップ2:servicedefinition.csdefに以下を含めます。

<LocalResources>
 <LocalStorage name="mystorage" cleanOnRoleRecycle="false" sizeInMB="2096" />
</LocalResources>

ステップ3:次のコードを任意のaspx(この場合はabout.aspx)に追加します

<div>
  Local Storage file content: <b><asp:Label ID="fileContent" runat="server" /></b>
</div>

ステップ4:aspx.cs(この場合はabout.aspx.cs)に次のコードを追加します。

protected void Page_Load(object sender, EventArgs e)
{
        LocalResource myStorage = RoleEnvironment.GetLocalResource("mystorage");
        string filePath = Path.Combine(myStorage.RootPath, "Lesson.txt");
        File.WriteAllText(filePath, "First Lesson");
        fileContent.Text = File.ReadAllText(filePath);

}

それでおしまい。私はこのコードをコンピューティングエミュレーターとクラウドでテストしましたが、機能します。

于 2012-05-16T17:50:42.697 に答える
0

ストレージ エミュレーターを使用する場合、ローカル リソースの割り当ては単なるファイル ディレクトリです。ルート パスは、説明したものとは少し異なりますが、ローカル マシンのそのディレクトリに移動できるはずです。最初は空です。\users\ you \AppData (隠しディレクトリ) の下に表示されるはずです。

ああ、ローカル リソースは BLOB ストレージとは何の関係もありません。Windows Azure では、特定のサイズ クォータを持つ、ローカルに接続された単なるディスク リソースです。Blob ストレージとは異なり、非永続ストレージです。一時ファイルの書き込み、キャッシュなどに最適で、ローカル ディスクであるため Blob Storage よりも高速ですが、保持する必要があるものについては、Blob を検討することをお勧めします。

于 2012-05-16T13:42:50.707 に答える