【问题标题】:cloudStorageAccount云存储账户
【发布时间】:2013-03-06 21:19:04
【问题描述】:

在迁移到 2.0 之前,以下代码有效(CloudStorageAccount 类型位于命名空间 StorageClient 中):

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


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

StorageClient 在 2.0 中被移除,所以现在我必须使用

Microsoft.WindowsAzure.Storage.CloudStorageAccount

,bit该类型没有CreateRoleInstanceDiagnosticManager方法

那么,当我将它用于我的性能计数器和日志时,如何获取 CreateRoleInstanceDiagnosticManager 之前返回的实例

【问题讨论】:

    标签: c# azure azure-storage


    【解决方案1】:

    看起来在 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);
    

    【讨论】:

      【解决方案2】:

      你要做的是首先包含以下命名空间:

      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 和 Storage Client 2.0 测试了上述代码。

      【讨论】:

      • 原帖说它是被升级破坏的,而不是被缺少的命名空间。
      【解决方案3】:

      它不起作用,因为 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 引用了该程序集。

      【讨论】:

        猜你喜欢
        • 2014-07-18
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        相关资源
        最近更新 更多