エクスポート (0) 印刷
すべて展開

RoleEnvironment クラス

実行中のロール インスタンスの構成、エンドポイント、およびステータスに関する情報を提供します。

名前空間: Microsoft.WindowsAzure.ServiceRuntime
アセンブリ: Microsoft.WindowsAzure.ServiceRuntime (Microsoft.WindowsAzure.ServiceRuntime 内)

'使用
Dim instance As RoleEnvironment

[WindowsAzureHostingPermissionAttribute(SecurityAction.LinkDemand, Unrestricted=true)] 
public sealed class RoleEnvironment
/** @attribute WindowsAzureHostingPermissionAttribute(SecurityAction.LinkDemand, Unrestricted=true) */ 
public final class RoleEnvironment
public final class RoleEnvironment

RoleEnvironment クラスを使用して、指定したロール インスタンスの構成設定、ローカル ストレージ リソース、およびエンドポイント情報を取得します。 このクラスには、ロール インスタンスが構成変更に対応し、ロール インスタンスが停止されようとしているときに通知を受信できるようにするイベントもあります。

次のコード例は、GetConfigurationSettingValue メソッドを使用して MySetting という構成設定の値を取得および書き出す方法を示しています。


var settingValue = RoleEnvironment.GetConfigurationSettingValue("MySetting"); 
Trace.WriteLine("The setting value is: " + settingValue, "Information");

設定の定義と構成の詳細については、「Windows Azure サービスの構成スキーマ」および「Windows Azure サービスの定義スキーマ」を参照してください。

次のコード例は、ローカル ストレージ リソースを取得し、そこにテキスト ファイルを書き込む方法を示しています。


// Retrieve an object that points to the local storage resource
LocalResource localResource = RoleEnvironment.GetLocalResource("localStoreTwo");

//Define the file name and path
string[] paths = { localResource.RootPath, "MyStorageTest.txt"};
String filePath = Path.Combine(paths);

using (FileStream writeStream = File.Create(filePath))
{
   Byte[] textToWrite = new UTF8Encoding(true).GetBytes("Testing Web role storage");
   writeStream.Write(textToWrite, 0, textToWrite.Length);
}

次のコード例は、現在のロール インスタンスのエンドポイント情報を取得する方法を示しています。


var roleInstance = RoleEnvironment.CurrentRoleInstance; 
foreach (RoleInstanceEndpoint instanceEndpoint in roleInstance.InstanceEndpoints.Values) 
{  
   Trace.WriteLine("Instance endpoint address and port: " + instanceEndpoint.IPEndpoint, "Information");
   Trace.WriteLine("Protocol for the endpoint: " + , instanceEndpoint.Protocol, "Information");
}

ロール インスタンスに対して行われた構成変更の取得方法を示すコード例を次に示します。


public override bool OnStart()
{
   RoleEnvironment.Changed += RoleEnvironmentChanged;
  
   return base.OnStart();
}
   
private void RoleEnvironmentChanged(object sender, RoleEnvironmentChangedEventArgs e)
{
   // Get the list of configuration changes
   var settingChanges = e.Changes.OfType<RoleEnvironmentConfigurationSettingChange>();
      
   foreach (var settingChange in settingChanges) 
   {
      var message = "Setting: " + settingChange.ConfigurationSettingName;
      Trace.WriteLine(message, "Information");
   }
}

イベントは、ServiceDefinition.csdef ファイルで内部エンドポイントがロールに対して定義されている場合にのみ発生します。 エンドポイントの定義の詳細については、「How to Define Internal Endpoints for a Role」を参照してください。


System.Object
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment

この型の public static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

開発プラットフォーム

Windows XP Home Edition, Windows XP Professional, Windows Server 2003、Windows Server 2008、および Windows 2000

対象プラットフォーム

コミュニティの追加

表示:
© 2014 Microsoft