2

Windows azure クラウド サービスでのファイル アクセスに関する質問に答えるために、stackoverflow に関する記事をいくつか見つけました。

私のアプリケーションには、カスタム構成ファイルとして使用される多数の xml ファイルがあり、これらは web プロジェクト内に保存されます。これは、それらを管理/編集できる最も便利な場所だからです。

このソリューションをローカル IIs サーバーに展開すると、これらの xml ファイルに簡単にアクセスして読み取ることができます。これは Windows の Azure クラウド サービスでもまったく同じであると当初は予想していました。しかし、これらのファイルを読み込もうとすると、ファイル アクセス エラーが発生することがわかりました。

ここでいくつかの記事を読んだ後、これが当てはまらないことは明らかであり、ファイル ストレージにアクセスするには、ローカル ストレージを構成する必要があります。

ただし、このストレージは一時的なものであり、ロール インスタンス間で共有されず、展開時に xml 構成ファイルが取り込まれないため、これは私のシナリオには完全には適合しません。

構成ファイルは特定のリリース バージョンに関連付けられているため、プロジェクト内に保持したいので、これらがすべてソース管理下にあり、デプロイがリリースされるたびにデプロイされるので便利です。

ローカル ストレージを利用する 1 つの方法は考えられますが、それは可能かもしれませんが、方法はわかりません。すべてのローカル構成ファイルをローカル ストレージ アカウントにコピーし、アプリケーションが必要に応じてローカル ストレージからそれらにアクセスできるようにする方法はありますか。これが一時的で共有されないという事実は問題ないと思います。各インスタンスには、構成ファイルもデプロイされた独自のローカル ストレージがあるからです。ただし、クラウド サービスがクラッシュした場合に、ローカル ストレージに必要な構成ファイルが再設定されるようにする必要があります。

または、他の代替手段はありますか。

明らかに、すべての記事で azure ストレージを使用して BLOB を使用することが提案されており、これを行うこともできますが、これには追加の問題があり、azure への展開ごとにすべての構成ファイルを自動的に展開する方法を見つける必要があります。

これをどのように達成するのが最善かについての助けは、ありがたく受け取られます。

以下のコメントの 1 つで述べたように、構成ファイルは標準の xml ファイルであり、ソリューション内のコンテンツとして含まれています。オンプレミス サーバーに展開すると、構成ファイルが公開および展開され、読み取り可能になります。ただし、Azure クラウド サービスにデプロイする場合は、構成ファイルがデプロイされます (リモートでクラウド サービス vm 上のファイルを見つけて確認したように)。しかし、(XmlSerializer を使用して) それらを読み取ろうとするたびに、アクセス拒否エラーが発生します。

4

1 に答える 1

0

Kramer、プロジェクトに構成ファイルを含め、[コピー]を[出力]に[常にコピー]に設定するか、[ビルドタイプ]を[コンテンツ]に設定すると、構成ファイルへのアクセスはIISの場合と同じように機能します。これを行う方法の例については、次の2つの投稿を確認してください。

于 2013-03-06T22:10:13.653 に答える