Esporta (0) Stampa
Espandi tutto

Classe RoleEnvironment

Aggiornamento: dicembre 2013

Fornisce informazioni su configurazione, endpoint e stato delle istanze del ruolo in esecuzione.

Spazio dei nomi: Microsoft.WindowsAzure.ServiceRuntime
Assembly: Microsoft.WindowsAzure.ServiceRuntime (in Microsoft.WindowsAzure.ServiceRuntime.dll)

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

È possibile usare la classe RoleEnvironment per ottenere informazioni su impostazioni di configurazione, risorse di archiviazione locali ed endpoint per un'istanza del ruolo specifica. Questa classe fornisce anche eventi che permettono all'istanza del ruolo di reagire alle modifiche di configurazione e di ricevere notifiche quando l'istanza del ruolo sta per essere arrestata.

noteNota
Microsoft Azure 1.3 e versioni successive riserva per un uso specifico eventuali variabili di ambiente che iniziano con le lettere "RD", ad esempio "RdRoleID". Se l'applicazione crea variabili di ambiente che iniziano con "RD", in determinate circostanze la proprietà IsAvailable restituirà false e altri metodi e proprietà della classe RoleEnvironment avranno come risultato il messaggio di errore relativo alla non disponibilità dei dati di rilevamento dei ruoli. Per risolvere questo problema, usare variabili di ambiente che non iniziano con le lettere "RD".

noteNota
La classe RoleEnvironment può essere usata nei componenti autonomi in una VM di Azure all'esterno di un ruolo di Azure. Questi componenti possono essere programmi che possono essere eseguiti, ad esempio, tramite accesso remoto all'istanza del ruolo e l'avvio del componente dalla riga comando. Questi processi devono essere eseguiti con privilegi elevati per accedere alla classe RoleEnvironment.

L'esempio di codice seguente mostra come ottenere e scrivere il valore per un'impostazione di configurazione denominata MySetting usando il metodo GetConfigurationSettingValue:


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

Per altre informazioni sulla definizione e la configurazione delle impostazioni, vedere Windows Azure Service Configuration Schema e Windows Azure Service Definition Schema.

L'esempio di codice seguente mostra come recuperare una risorsa di archiviazione locale e scrivervi un file di testo:


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

Il seguente esempio di codice mostra come recuperare le informazioni sull'endpoint per l'istanza del ruolo attuale:


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'esempio di codice seguente mostra come recuperare le modifiche di configurazione apportate a un'istanza del ruolo:


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

Gli eventi vengono generati solo se è stato definito un endpoint interno per il ruolo nel file ServiceDefinition.csdef. Per altre informazioni sulla definizione degli endpoint, vedere How to Define Internal Endpoints for a Role.


System.Object
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment

Qualsiasi membro statico pubblico (condiviso in Visual Basic) di questo tipo è thread safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Piattaforme di sviluppo

Windows Vista, Windows 7 e Windows Server 2008

Piattaforme di destinazione

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft