本頁是否能提供幫助?
您對此內容的意見反應十分重要。 請告訴我們您的想法。
其他意見反應?
剩餘 1500 個字元
RoleEnvironment類別

RoleEnvironment類別

更新日期: 2013年12月

提供有關組態、端點和執行中角色執行個體的狀態資訊。

命名空間: 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 VM 中 Azure 角色外部的獨立元件。這些元件可能是可以執行的程式,其執行方法 (例如) 為從遠端連至角色執行個體並從命令列啟動元件。必須使用提高的權限來執行這些程序,才能存取 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

這種類型的任何公用靜態 (在 Visual Basic 中的 Shared) 成員都屬於安全執行緒。不保證任何執行個體成員安全執行緒。

開發平台

Windows Vista、Windows 7 和 Windows Server 2008

目標平台

社群新增項目

新增
顯示:
© 2015 Microsoft