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 クラウドには表示されません。エミュレーターでクラウド アプリを実行し、診断接続文字列をライブ クラウド ストレージにポイントすると、それでも診断を取得できます。誰かが私に何が起こっているのか教えてもらえますか?
カピル