Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

Classe RoleEnvironment

Mis à jour: décembre 2013

Fournit des informations sur la configuration, les points de terminaison et l'état des instances de rôle en cours d'exécution.

Espace de noms: Microsoft.WindowsAzure.ServiceRuntime
Assembly : Microsoft.WindowsAzure.ServiceRuntime (en Microsoft.WindowsAzure.ServiceRuntime.dll)

[WindowsAzureHostingPermissionAttribute(SecurityAction::LinkDemand, Unrestricted=true)] 
public ref class RoleEnvironment sealed

Vous utilisez la classe RoleEnvironment pour obtenir les paramètres de configuration, les ressources de stockage local et les informations de point de terminaison pour une instance de rôle spécifiée. Cette classe fournit également des événements qui permettent à l'instance de rôle de réagir aux modifications de configuration et de recevoir une notification lorsqu'elle est sur le point d'être arrêtée.

noteRemarque
Microsoft Azure 1.3, et les versions ultérieures, réserve pour sa propre utilisation toutes les variables d'environnement qui commencent par les lettres RD, par exemple « RdRoleID ». Si votre application crée des variables d'environnement qui commencent par « RD », dans certaines circonstances, la propriété IsAvailable retourne false et les autres méthodes et propriétés de la classe RoleEnvironment provoquent le message d'erreur « les données de découverte des rôles ne sont pas disponibles ». Pour corriger ce problème, utilisez des variables d'environnement qui ne commencent pas par les lettres « RD ».

noteRemarque
La classe RoleEnvironment peut être utilisée sur des composants autonomes dans une machine virtuelle Azure en dehors d'un rôle Azure. Ces composants peuvent être des programmes qui peuvent être exécutés par exemple en établissant une communication à distance vers l'instance de rôle et en démarrant le composant à partir de la ligne de commande. Ces processus doivent être exécutés avec des élévations de privilèges pour accéder à la classe RoleEnvironment.

L'exemple de code suivant présente la récupération et l'écriture de la valeur d'un paramètre de configuration appelé MySetting à l'aide de la méthode GetConfigurationSettingValue :


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

Pour plus d'informations sur la définition et la configuration des paramètres, consultez les pages Windows Azure Service Configuration Schema et Windows Azure Service Definition Schema.

L'exemple de code suivant présente la récupération d'une ressource de stockage local pour y écrire un fichier texte :


// 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);
}

L'exemple de code suivant présente la récupération des informations du point de terminaison de l'instance de rôle actuelle :


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");
}

L'exemple de code suivant présente la récupération des modifications de configuration apportées à une instance de rôle :


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");
   }
}

Les événements sont déclenchés uniquement si un point de terminaison interne est défini pour le rôle dans le fichier ServiceDefinition.csdef. Pour plus d'informations sur la configuration des points de terminaison, consultez la page How to Define Internal Endpoints for a Role.


System.Object
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment

Tous les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.

Plateformes de développement

Windows Vista, Windows 7 et Windows Server 2008

Plateformes cibles

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft