2013-03-06 20 views
4

遷移到2.0之前,下面的代碼工作(類型CloudStorageAccount是命名空間StorageClient):在2.0中除去cloudStorageAccount

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(
    RoleEnvironment.GetConfigurationSettingValue(wadConnectionString)); 


var roleInstanceDiagnosticManager = cloudStorageAccount.CreateRoleInstanceDiagnosticManager(
    RoleEnvironment.DeploymentId, 
    RoleEnvironment.CurrentRoleInstance.Role.Name, 
    RoleEnvironment.CurrentRoleInstance.Id); 

StorageClient,所以現在我必須使用

Microsoft.WindowsAzure.Storage.CloudStorageAccount 

,位這種類型沒有方法CreateRoleInstanceDiagnosticManager

那麼我怎麼才能得到由以前的CreateRoleInstanceDiagnosticManager返回的實例,因爲我用它爲我的P erformance計數器和日誌

回答

0

你做的是首先包括以下名稱空間:

using Microsoft.WindowsAzure.Diagnostics.Management; 

然後使用下面的代碼:

CloudStorageAccount cloudStorageAccount = 
    cloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue 
     (wadConnectionString)); 

RoleInstanceDiagnosticManager roleInstanceDiagnosticManager = 
      cloudStorageAccount.CreateRoleInstanceDiagnosticManager 
      (RoleEnvironment.DeploymentId, 
      RoleEnvironment.CurrentRoleInstance.Role.Name, 
      RoleEnvironment.CurrentRoleInstance.Id); 

我上面的代碼只是測試用SDK 1.8 &存儲客戶端2.0。

+0

原帖說,它是由一個升級壞了,不是缺少命名空間。 – Lukos 2013-06-13 11:22:20

0

它不工作,因爲CreateRoleInstanceDiagnosticManager擴展引用了一個老CloudStorageAccount。解決方法是使用DeploymentDiagnosticManager

var storageConnectionString = RoleEnvironment.GetConfigurationSettingValue(
        "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"); 
var deploymentDiagnosticManager = new DeploymentDiagnosticManager(
             storageConnectionString, 
             RoleEnvironment.DeploymentId); 
return deploymentDiagnosticManager.GetRoleInstanceDiagnosticManager(
         RoleEnvironment.CurrentRoleInstance.Role.Name, 
         RoleEnvironment.CurrentRoleInstance.Id);` 

除了Microsoft.WindowsAzure.Storage需要引用舊Microsoft.WindowsAzure.StorageClient,作爲AzureDiagnostics引用該程序集。

5

它看起來好像在2.0有一個變化,並不再像擴展方法那樣工作 - 這意味着你可能不需要你在頂端的CloudStorageAccount,我只是自己碰到了這個。

試試這個:

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(
         RoleEnvironment.GetConfigurationSettingValue(wadConnectionString)); 

var roleInstanceDiagnosticManager = CloudAccountDiagnosticMonitorExtensions.CreateRoleInstanceDiagnosticManager(
      RoleEnvironment.GetConfigurationSettingValue(wadConnectionString), 
      RoleEnvironment.DeploymentId, 
      RoleEnvironment.CurrentRoleInstance.Role.Name, 
      RoleEnvironment.CurrentRoleInstance.Id); 
相關問題