War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
RoleEnvironment-Klasse

RoleEnvironment-Klasse

Letzte Aktualisierung: Dezember 2013

Enthält Informationen zu Konfiguration, Endpunkten und Status der ausgeführten Rolleninstanzen.

Namespace: Microsoft.WindowsAzure.ServiceRuntime
Assembly: Microsoft.WindowsAzure.ServiceRuntime (in Microsoft.WindowsAzure.ServiceRuntime.dll)

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

Sie verwenden die RoleEnvironment-Klasse zum Abrufen der Konfigurationseinstellungen, lokalen Speicherressourcen und Endpunktinformationen für eine angegebene Rolleninstanz. Die Klasse bietet auch Ereignisse, mit deren Hilfe die Rolleninstanz auf Konfigurationsänderungen reagieren und eine Benachrichtigung erhalten kann, wenn die Rolleninstanz vor dem Beenden steht.

noteHinweis
Windows Azure 1.3 und höher reserviert für eigene Zwecke alle Umgebungsvariablen, die mit den Buchstaben "RD" beginnen, z. B. "RdRoleID". Wenn Ihre Anwendung Umgebungsvariablen erstellt, die mit "RD" beginnen, gibt die IsAvailable-Eigenschaft unter bestimmten Umständen false zurück. Andere Methoden und die Eigenschaften der RoleEnvironment-Klasse geben dann die Fehlermeldung aus, dass Rollenermittlungsdaten nicht verfügbar sind. Wählen Sie zum Vermeiden dieses Problem Umgebungsvariablen, die nicht mit den Buchstaben "RD" beginnen.

noteHinweis
Die RoleEnvironment-Klasse kann auf eigenständigen Komponenten in einer Azure-VM außerhalb einer Azure-Rolle verwendet werden. Diese Komponenten können Programme sein, die ausgeführt werden können, indem eine Remoteverbindung mit der Rolleninstanz hergestellt und die Komponente über die Befehlszeile gestartet wird. Diese Prozesse müssen mit erhöhten Berechtigungen für den Zugriff auf die RoleEnvironment-Klasse ausgeführt werden.

Im folgenden Codebeispiel wird veranschaulicht, wie der Wert einer Konfigurationseinstellung mit dem Namen "MySetting" mithilfe der GetConfigurationSettingValue-Methode abgerufen und ausgegeben wird:


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

Weitere Informationen zum Definieren und Konfigurieren von Einstellungen finden Sie unter Windows Azure Service Configuration Schema und Windows Azure Service Definition Schema.

Im folgenden Codebeispiel wird veranschaulicht, wie eine lokale Speicherressource abgerufen und eine Textdatei in diese geschrieben wird:


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

Im folgenden Codebeispiel wird veranschaulicht, wie Endpunktinformationen für die aktuelle Rolleninstanz abgerufen werden:


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

Im folgenden Codebeispiel wird veranschaulicht, wie die Konfigurationsänderungen abgerufen werden, die an einer Rolleninstanz erfolgt sind:


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

Die Ereignisse werden nur ausgelöst, wenn ein interner Endpunkt für die Rolle in der Datei "ServiceDefinition.csdef" definiert ist. Weitere Informationen zum Konfigurieren von Endpunkten finden Sie unter How to Define Internal Endpoints for a Role.


System.Object
  Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment

Alle öffentlichen statischen (in Visual Basic freigegebenen) Elemente dieses Typs sind threadsicher. Bei Instanzelementen ist die Threadsicherheit nicht gewährleistet.

Entwicklungsplattformen

Windows Vista, Windows 7 und Windows Server 2008

Zielplattformen

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft