我是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