C# cloudStorageAccount

C# cloudStorageAccount,c#,azure,azure-storage,C#,Azure,Azure Storage,在迁移到2.0之前,以下代码正常工作(类型CloudStorageAccount位于命名空间StorageClient中): StorageClient在2.0中被删除,所以现在我必须使用 Microsoft.WindowsAzure.Storage.CloudStorageAccount ,位此类型没有方法CreateRoleInstanceDiagnosticManager 因此,如何获取CreateRoleInstanceDiagnosticManager先前返回的实例,因为我将其用于性

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

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

Microsoft.WindowsAzure.Storage.CloudStorageAccount
,位此类型没有方法CreateRoleInstanceDiagnosticManager


因此,如何获取CreateRoleInstanceDiagnosticManager先前返回的实例,因为我将其用于性能计数器和日志

您要做的是首先包含以下名称空间:

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

它不起作用,因为CreateRoleInstanceDiagnosticManager扩展引用了旧的CloudStorageAccount。解决方法是使用DeploymentDiagnosticManager


除了Microsoft.WindowsAzure.Storage,您还需要引用旧的Microsoft.WindowsAzure.StorageClient,因为AzureDiagnostics引用该程序集

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

最初的帖子说,它是被升级破坏的,而不是被丢失的名称空间破坏的。
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);`
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(
                       RoleEnvironment.GetConfigurationSettingValue(wadConnectionString));

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