我有一个 Azure 的免费帐户(90 天试用),但我发现我的工作角色出错了。我没有启用任何监控功能,因为我相信它们要花钱。
有什么方法可以让我记录错误并将它们存储在可以检索它们的地方,而无需将我的帐户升级为付费帐户?
我有一个 Azure 的免费帐户(90 天试用),但我发现我的工作角色出错了。我没有启用任何监控功能,因为我相信它们要花钱。
有什么方法可以让我记录错误并将它们存储在可以检索它们的地方,而无需将我的帐户升级为付费帐户?
您可以在辅助角色 OnStart() 方法中为未处理的异常附加事件。
public override bool OnStart()
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
bool result = base.OnStart();
Trace.TraceInformation("ReceiverRole has been started");
return result;
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Trace.TraceError("Unhandled exception in worker role: {0}", e.ExceptionObject);
}
What I've found myself that is was quite time consuming to implement the Azure Diagnostics, and the best way so far, was to launch the Azure Emulator on my machine, and see what error's it shows.
What You do, is simple set up Your Azure project as startup and run it. Or right click on the Azure project and select : Debug -> Start New Instance
查看(Windows Azure 诊断),它允许您为您的工作角色收集诊断数据(跟踪日志、事件日志、性能计数器等)。根据配置,此诊断数据可以持久保存到 Windows Azure 表存储中。您可以使用任何存储资源管理器查看诊断数据。
瘦身便宜的方法是添加到角色错误处理程序,将带有堆栈的异常内容发送到 StorageAccount 表。您可以使用云存储浏览器查看表内容以查看异常的详细信息。随着时间的推移,这可能会变得成熟,有一个很好的“内部”应用程序,可以将表格内容下载到 SS 中,并创建一个可以浏览错误的智能客户端。
我以一种可以设置详细程度并通过 UTC 处理时间戳的方式实现了这个系统。日志记录是在一个单独的工作角色中完成的,以便“生产”角色发布到一个队列,这对于失败的角色来说处理起来要快得多。