答えは、これを Windows Azure 仮想マシンで実行しているか、Windows Azure Web ロールで実行しているかによって異なります。
これを Windows Azure 仮想マシンで実行している場合、VHD は BLOB ストレージに保存されます。サイトがデータ ディスクではなく C: ドライブで実行されている場合、システムでは両方のホスト キャッシュがオンになっています。読み書きします。このシナリオでは、(ファイルの書き出しに使用する方法によっては) 障害が発生する前にデータが BLOB ストレージの VHD にプッシュバックされない可能性があります。書き込みメソッドが確実にライト スルー操作を行うようにするか、書き込みキャッシュをオフにすることができます。さらに良いのは、Web サイト ファイル用のデータ ディスクを接続することです。デフォルトでは、データ ディスクの読み取りキャッシュと書き込みキャッシュの両方がオフになっています (読み取りキャッシュをオンにすることもできます)。VHD は永続化されるため、編集内容が失われる心配はありません。ファイルのスナップショットを取得するスクリプトを作成し、それらを個別に BLOB ストレージに移動したり、別の場所にプッシュしたりすることもできます。このオプションで考慮すべきもう 1 つの点は、VM インスタンスを管理し、パッチを適用して最新の状態に保つ必要があることです。
Web ロールを実行している場合は、そうです。障害が発生して VM が自己回復を行った場合、VM は実際に古いファイルで再デプロイされます。この場合、Web ロールのコードを変更して、ローカル ファイルに更新を書き込むときに、ローカル ファイルのコピーも BLOB ストレージに配置することをお勧めします。さらに、Web ロールの OnStart では、BLOB ストレージにアクセスして、すべての新しいコンテンツをローカルに取得できます。ただし、このアプローチは複数ではなく 1 つのインスタンスに対してのみうまく機能するため、非常に注意してください。サーバーの複数のインスタンスを実行する予定がある場合 (稼働時間の SLA が必要な場合は実行する必要があります)、コードをもう少し堅牢にする必要があり、BLOB ストレージへの書き込みを行い、ロールのすべてのインスタンスにアラートを出します。ローカルにプルダウンする新しいファイルがあること。
Web ロールのもう 1 つのオプションは、コンテンツのハンドラーを作成して、リクエストが受信され、ファイル BLOB ストレージに直接マップされるようにすることです。その後、更新を行って、BLOB ストレージ内のファイルを直接編集できます。これにより、計算ノードから BLOB ストレージへのフラット ファイルの提供がオフロードされ、必要に応じて BLOB ストレージに直接ヒットさせるのではなく、キャッシュを実装して、ハンドラーを介してコンテンツをストリーミングすることもできます。
もう 1 つのオプションは、これに Windows Azure Web サイトを使用することです。Windows Azure Web サイトの Web サイト ファイルの基になるストレージは共有の場所であるため、その中のファイルを更新すると、すべてのインスタンスにすぐに反映されます。また、サイトのコンテンツは BLOB ストレージに保存され、FTP、ソース管理、またはコードから直接更新できます。ここにはたくさんのオプションがあります。Web サイトが持つクォータの一部を回避するために、予約済みインスタンスに移行することになる場合があります。現在、他の要件によっては、Web サイトは選択肢にならない場合があります (Web サイトをあまり制御できないため、環境をどの程度制御する必要があるかなど)。