我是Azure开发新手,我一直在努力追踪工作(到Azure存储)。Azure WorkerRole和WebRole跟踪延迟OnStart?
我终于设法使其工作,但第一个跟踪消息似乎并没有转移到WADLogsTable。
作为一项工作阶段,我暂时修复了在启动DiagnosticMonitor后添加10秒睡眠。
我开始在WorkerRole的OnStart方法使用这样的:
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);
现在我改变了它的建议:
string wadConnectionString = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(wadConnectionString));
RoleInstanceDiagnosticManager roleInstanceDiagnosticManager = cloudStorageAccount
.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId,
RoleEnvironment.CurrentRoleInstance.Role.Name,
RoleEnvironment.CurrentRoleInstance.Id);
DiagnosticMonitorConfiguration diagnosticMonitorConfiguration = DiagnosticMonitor.GetDefaultInitialConfiguration();
diagnosticMonitorConfiguration.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
roleInstanceDiagnosticManager.SetCurrentConfiguration(diagnosticMonitorConfiguration);
但我仍然得到同样的行为(现在睡眠10s是不够的,我不得不改变它到20s)。
有没有人遇到同样的问题? 有没有人有更好的解决方法? 我做错了什么?
请注意对于ScheduledTransferPeriod:“此值四舍五入到最接近的分钟...”(http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.diagnostics.diagnosticdatabufferconfiguration.scheduledtransferperiod.aspx ) – 2011-05-24 23:56:22
@Oliver Bock - 非常感谢,我不知道这件事! :) – Maghis 2011-05-25 00:07:27
我的博客涵盖此:http://blogs.msdn.com/b/windowsazure/archive/2012/10/25/using-trace-in-windows-azure-cloud-applications-1.aspx – RickAndMSFT 2012-12-28 20:30:57