Azure辅助角色和Web角色跟踪延迟OnStart?

时间:2011-05-24 23:36:10

标签: logging azure tracing

我是Azure开发的新手,我一直在努力寻找工作(到Azure存储)。

我终于设法让它工作但第一个跟踪消息似乎没有转移到WADLogsTable。

作为一个workaroud,我暂时修复了它,在启动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);

但是我仍然得到相同的行为(现在睡眠不足10次了,我不得不把它改成20s)。

有没有人遇到同样的问题? 有没有人有更好的解决方法? 我做错了吗?

2 个答案:

答案 0 :(得分:0)

这可能与在本地开发结构模拟器中运行有关。您应该尝试在实际的Windows Azure Compute实例中运行它,以查看问题是否消失。

答案 1 :(得分:0)

您使用的是什么SDK? 1.3 SDK及更高版本的诊断监视器作为后台任务运行,已经在您的角色之外,因此您不应该在其上调用Start。相反,您应该配置.wadcfg文件或以编程方式配置:

http://convective.wordpress.com/2010/12/01/configuration-changes-to-windows-azure-diagnostics-in-azure-sdk-v1-3/

请注意,博客作者会讨论1.3中的错误,但这已在1.4中修复。