8

Azure で 2 つ以上の Windows VM の負荷分散に関心があります。ただし、私の主な要件は、「アップロード」フォルダーが各 VM 間で一貫している必要があるということです。このフォルダー内のファイルは、管理者ユーザーによって FTP で送信されます。管理者は、C# MVC Web アプリでこれらのファイルを選択する必要があります。FTP を介して 1 つの VM に接続できますが、Web 接続は別の VM に接続する可能性があるため、アップロードは集中化する必要があります。

各 VM がアクセスできる共有ドライブをセットアップできるという点で、現在プレビュー段階にある新しい Azure Files が役立つように見えました。私の考えでは、FileZilla Server はこの共有「ドライブ」への FTPing を許可し、Web アプリはそれにアクセスしてコンテンツを表示するというものでした。

Azure Files プレビューにサインアップし、共有をセットアップして、実験のためにドライブ Z に永続的にマッピングしました。また、新しいユーザーを作成し、Z.

しかし、リモートデスクトップ以外ではこれで何もできないようです。FileZilla は、サービスがこの新しいアカウントを使用してログオンするように設定されているにもかかわらず、このドライブの内容を表示したり、何も書き込んだりしません。同様に、パススルー認証を仮想フォルダーのこの新しいアカウントに切り替えたにもかかわらず、私の Web アプリはファイルの内容にアクセスできません。

ネットワーク パスまたはドライブ文字を介してこのドライブにアクセスする方法を知っている人はいますか? これは、Azure Files ではそのままでは不可能ですか? VM 間で一部の BLOB を共有するが、それをローカル ドライブまたはネットワーク共有として扱う他のソリューションはありますか?

[アップデート]

これは役立つかもしれません。共有を設定し、cmd プロンプトで cmdkey と net use を使用すると、特別に作成されたユーザーとして実行されます ( http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/27/persistingで提案されているように)。 connections-to-microsoft-azure-files.aspx )、作成した特定のアカウントを使用して IIS の仮想フォルダーをこの共有にポイントし、接続をテストすると、次のようになります。テスト: 認証 (赤十字、「パスが存在しないか、パス内の環境変数を展開して、存在するかどうかを確認できませんでした。」)

まだ runas cmd プロンプトで、共有にアクセスできるため、特定の権限の問題ではありません。何らかの理由で、IIS がそのユーザーを使用して共有にアクセスできないようです。Azure Files の制限は、その共有内のフォルダーに対するいかなる種類のアクセス許可も具体的に付与できないことです。

4

2 に答える 2

5

私のために働いたのは次のとおりです。

  1. 新しいアカウントを作成する
  2. IIS アプリケーション プール ID をこの特定のユーザーに設定します
  3. IIS アプリケーション プールLoad User Profileプロパティをtrueに設定します。
  4. このユーザー (runas) として cmd promt を開始します
  5. あなたが説明したように、 cmdkeyとnet use(/persistent:trueスイッチ付き)を実行します
  6. 物理パスを UNC 共有パス (マップされたドライブではない) に設定して IIS 仮想ディレクトリを作成します。

ポイント 5 の小さな PowerShell スニペット:

$share = "your-storage-account.file.core.windows.net\yoursharename"
$usr = "ストレージ アカウント"
$key = "あなたのストレージキー"

#ネットワーク共有の認証情報を保存 - アプリ プールを実行するユーザーに対して実行する必要があります
cmdkey /add:subclub.file.core.windows.net\images /user:$usr /pass:$key
net use z: "\\$share" /user:$usr $key /persistent:yes
于 2014-10-24T19:41:08.477 に答える
5

ここでの回答は役に立ちました。

設定

  1. 新しいユーザー {appuser} を作成します
  2. ユーザーとしてコマンド ウィンドウを開きます

runas /user:{appuser} cmd.exe

  1. 新しい {appuser} コマンド ウィンドウで使用します

cmdkey /add:{ストレージ アカウント}.file.core.windows.net /user:{ストレージ アカウント} /pass:{アカウント キー}

  1. 4b. {appuser} を使用するように IIS アプリケーション プールを設定します。LoadUserProfile を true に設定します

ネット使用の必要がないことに注意してください。マップされたドライブは必要ありません。

コード

これが重要な部分です。アプリから UNC パスに書き込む必要があります。

\{ストレージ アカウント}.file.core.windows.net\

元。

File.WriteAllText("\\\\{storage-account}.file.core.windows.net\\share\test.txt", "contents goes here");
于 2015-03-03T19:34:18.490 に答える