0

Azure SDK 1.4 を使用しており、Web ロールで診断をセットアップしようとしています。webrole の onstart メソッドで行ったことは次のとおりです。

            string wadConnectionString = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString";

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(wadConnectionString));
            RoleInstanceDiagnosticManager roleInstanceDiagnosticManager = storageAccount.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId, 
                    RoleEnvironment.CurrentRoleInstance.Role.Name, RoleEnvironment.CurrentRoleInstance.Id);
            DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();

            int loggingInterval = Int32.Parse(RoleEnvironment.GetConfigurationSettingValue("loggingInterval"));
            config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(loggingInterval);
            config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;

            roleInstanceDiagnosticManager.SetCurrentConfiguration(config);

            // For information on handling configuration changes
            // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
            RoleEnvironment.Changing += RoleEnvironmentChanging;

これを開発マシンのクラウド エミュレーターで実行すると、正常に動作し、WADLogs テーブルにログが記録されていることがわかります。cscfg ファイルの "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" 値を "UseDevelopmentStorage=true" に設定しました。Webrole を azure クラウドに発行するときに、次の構成値を設定して、正しいストレージ アカウントを適切に指すようにします。

<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=acctname;AccountKey=acctKey" />

ただし、私の webrole ログは azure クラウドには表示されません。エミュレーターでクラウド アプリを実行し、診断接続文字列をライブ クラウド ストレージにポイントすると、それでも診断を取得できます。誰かが私に何が起こっているのか教えてもらえますか?

カピル

4

1 に答える 1