4

在迁移到 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

,位此类型没有 CreateRoleInstanceDiagnosticManager 方法

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

4

3 回答 3

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);
于 2013-05-04T23:21:48.887 回答
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 & Storage Client 2.0 测试了上面的代码。

于 2013-03-06T22:33:25.080 回答
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 引用了该程序集。

于 2013-04-02T05:09:00.987 回答