¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Clase RoleEnvironment

Clase RoleEnvironment

Actualizado: diciembre de 2013

Proporciona información sobre la configuración, los extremos y el estado de las instancias de rol en ejecución.

Espacio de nombres: Microsoft.WindowsAzure.ServiceRuntime
Ensamblado: Microsoft.WindowsAzure.ServiceRuntime (en Microsoft.WindowsAzure.ServiceRuntime.dll)

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

Utiliza la clase RoleEnvironment para obtener los valores de configuración, los recursos de almacenamiento local y la información de extremo para una instancia de rol especificada. La clase también proporciona eventos que permiten que la instancia de rol reaccione ante los cambios de configuración y recibir una notificación cuando la instancia de rol está a punto de detenerse.

noteNota
Microsoft Azure 1.3 y posteriores reserva para su propio uso las variables de entorno que comienzan con las letras "RD"; por ejemplo, "RdRoleID". Si la aplicación crea las variables de entorno que comienzan por "RD", en determinadas circunstancias, la propiedad IsAvailable devolverá false y otros métodos y propiedades de la clase RoleEnvironment darán lugar a un mensaje de error relacionado con la no disponibilidad de los datos de detección del rol. Para corregir este problema, utilice las variables de entorno que no comienzan por las letras "RD".

noteNota
La clase RoleEnvironment puede utilizarse en componentes independientes en una máquina virtual de Azure fuera de un rol de Azure. Estos componentes pueden ser programas que se pueden ejecutar, por ejemplo, mediante comunicación remota en la instancia de rol o mediante el inicio del componente desde la línea de comandos. Estos procesos se deben ejecutar con privilegios elevados para tener acceso a la clase RoleEnvironment.

En el ejemplo de código siguiente se muestra cómo obtener y escribir el valor para un parámetro de configuración denominado MySetting mediante el uso del método GetConfigurationSettingValue:


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

Para obtener más información acerca de cómo se definen y configuran los valores, vea Windows Azure Service Configuration Schema y Windows Azure Service Definition Schema.

En el ejemplo de código siguiente se muestra cómo recuperar un recurso de almacenamiento local y escribir un archivo de texto en él:


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

En el ejemplo de código siguiente se muestra cómo recuperar información de extremo para la instancia de rol actual:


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

En el ejemplo de código siguiente se muestra cómo recuperar los cambios de configuración que se han realizado en una instancia de rol:


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

Los eventos se generan solo si se define un extremo interno para el rol en el archivo ServiceDefinition.csdef. Para obtener más información sobre cómo definir extremos, vea How to Define Internal Endpoints for a Role.


System.Object
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment

Cualquier miembro estático público (compartido en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Plataformas de desarrollo

Windows Vista, Windows 7 y Windows Server 2008

Plataformas de destino

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft