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

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);`

AzureDiagnostics がそのアセンブリを参照するため、 Microsoft.WindowsAzure.Storageに加えて、古いMicrosoft.WindowsAzure.StorageClientを参照する必要があります。

于 2013-04-02T05:09:00.987 に答える
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 に答える