Была ли эта страница полезной?
Ваш отзыв об этом контенте важен для нас. Расскажите нам о том, что вы думаете.
Дополнительный отзыв?
1500 символов осталось
RoleEnvironment - класс

RoleEnvironment - класс

Обновлено: Декабрь 2013 г.

Содержит сведения о конфигурации, конечных точках и состоянии запущенных экземпляров роли.

Пространство имен: Microsoft.WindowsAzure.ServiceRuntime
Сборка: Microsoft.WindowsAzure.ServiceRuntime (в Microsoft.WindowsAzure.ServiceRuntime.dll)

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

Для получения сведений о параметрах конфигурации, локальных ресурсах хранилища и конечных точках для заданного экземпляра роли можно использовать класс RoleEnvironment. Класс также предоставляет события, которые позволяют экземпляру роли реагировать на изменения конфигурации и получать уведомление о приближающейся остановке экземпляра роли.

noteПримечание
Windows Azure 1.3 и более поздние версии резервируют для собственного использования переменные среды, начинающиеся с букв "RD", например "RdRoleID". Если приложение создает переменные среды, которые начинаются с «RD», в некоторых случаях свойство IsAvailable возвратит значение false, а другие методы и свойства класса RoleEnvironment приведут к отображению сообщения об ошибке «Данные обнаружения роли недоступны». Для исправления этой ошибки используйте переменные среды, которые не начинаются с букв "RD".

noteПримечание
Класс RoleEnvironment можно использовать в автономных компонентах на виртуальной Машине Azure вне роли Azure. Этими компонентами могут быть программы, которые могут выполняться, например, при вводе в экземпляр роли и запуске компонента из командной строки. Эти процессы должны запускаться с повышенными правами на доступ к классу RoleEnvironment.

В следующем примере кода показано получение и запись значение для параметра конфигурации с именем MySetting с помощью метода GetConfigurationSettingValue.


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

Дополнительные сведения об определении и настройке параметров см. в разделах Windows Azure Service Configuration Schema и Windows Azure Service Definition Schema.

В следующем примере кода показано получение локального ресурса хранилища и запись в него текстового файла.


// 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

Все открытые статические члены метода (Shared в Visual Basic) этого типа потокобезопасны. Безопасная многопоточная работа с членами экземпляров типа не гарантируется.

Платформы разработки

Windows Vista, Windows 7 и Windows Server 2008

Целевые платформы

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2015 Microsoft