이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장

RoleEnvironment 클래스

업데이트 날짜: 2013년 12월

실행 중인 역할 인스턴스 상태, 끝점 및 구성에 대한 정보를 제공합니다.

네임스페이스: Microsoft.WindowsAzure.ServiceRuntime
어셈블리: Microsoft.WindowsAzure.ServiceRuntime.dll의 Microsoft.WindowsAzure.ServiceRuntime

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

RoleEnvironment 클래스를 사용하여 지정된 역할 인스턴스에 대한 구성 설정, 로컬 저장소 리소스 및 끝점 정보를 가져옵니다. 이 클래스는 역할 인스턴스가 구성 변경에 응답하고 역할 인스턴스 중지 시 알림을 받을 수 있도록 하는 이벤트도 제공합니다.

note참고
Microsoft Azure 1.3 이상 버전에서는 "RdRoleID"와 같이 "RD" 문자로 시작하는 환경 변수를 자체적으로 사용할 수 있도록 예약합니다. 응용 프로그램에서 "RD"로 시작하는 환경 변수를 만드는 경우 상황에 따라 IsAvailable 속성은 false를 반환하며 RoleEnvironment 클래스의 다른 메서드와 속성에서는 "역할 검색 데이터를 사용할 수 없습니다."라는 오류 메시지가 표시됩니다. 이 문제를 해결하려면 "RD" 문자로 시작하지 않는 환경 변수를 사용합니다.

note참고
RoleEnvironment 클래스는 Azure 역할 외부의 Azure VM에서 독립 실행형 구성 요소에 대해 사용할 수 있습니다. 이러한 구성 요소는 원격 인스턴스로 원격 실행하여 명령줄에서 구성 요소를 시작하는 등의 방법으로 실행할 수 있는 프로그램일 수 있습니다. RoleEnvironment 클래스에 액세스하려면 이러한 프로세스를 관리자 권한으로 실행해야 합니다.

다음 코드 예제에서는 GetConfigurationSettingValue 메서드를 사용하여 MySetting이라는 구성 설정에 대한 값을 가져오고 작성하는 방법을 보여 줍니다.


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

설정을 정의하고 구성하는 방법에 대한 자세한 내용은 Windows Azure Service Configuration SchemaWindows 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

이 유형의 public static(Visual Basic에서는 Shared) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전성이 보장되지 않습니다.

개발 플랫폼

Windows Vista, Windows 7 및 Windows Server 2008

대상 플랫폼

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft