1

Gloabal.asax.csで静的文字列「drivePath」を宣言しました。webroleのOnstartイベントで、値を割り当てています。Webページでこの値にアクセスしていますが、変数が宣言されたばかりのように表示されます。マイコードで取得する値は次のとおりです

Global.asax.cs

public static string drivePath = string.Empty;

WebRole.cs

public override bool OnStart()
{
    MountAzureDrive();
    Global.drivePath = WebRole.drivePath;
    return base.OnStart();
}

「MountAzureDrive()」関数でWebRole.drivePathに値を割り当てています。

Webページ上

一部の関数のWebページで、「Global.drivePath」としてdrivePathにアクセスし、string.Emptyとして値を取得しています。

私の質問は、なぜドライブパスの値を保持しないのですか?ドライブパスの値を保持して取得したい場合は、どうすればよいですか?

私を助けてください

前もって感謝します。

4

2 に答える 2

2

WebRoleで実行されているコードは、Webアプリケーション(Global.asax.cs)と同じプロセスではありません。あなたができることは次のとおりです。

  1. WebRole:ドライブをマウントします
  2. WebRole:ドライブ文字を環境変数として保存します
  3. Global.asax.cs:環境変数からドライブ文字を読み取ります。
  4. ..。

ここに画像の説明を入力してください

詳細については、次の記事に従ってください:http: //www.codeproject.com/Articles/81413/Windows-Azure-Drives-Part-1-Configure-and-Mounting

サンドリーノ

于 2012-04-04T10:56:19.023 に答える
1

OnStart(Role)は、Webページ(pages、Global.asax ..)とは別のプロセスにあります。少なくともフルIISモードを使用している場合。

于 2012-04-04T09:18:30.683 に答える