0

我已配置 Azure 诊断,以便将日志上传到存储表。我正在使用我的代码中的 Trace.TraceXxx 并且一切正常。

现在我正在尝试从 Role OnStart() 和 OnStop() 方法添加跟踪。我知道跟踪是有效的,因为我在模拟器中运行时看到了调试窗口中的行。但是从云部署来看,这些跟踪行似乎永远不会上传到表中。我的猜测是它与 TraceSources 有点相关,因为我在表中唯一的跟踪行来自 w3wp.exe 源......有什么提示吗?

谢谢

4

2 回答 2

1

就像您说的那样,您可以使用WaIISHost.exe.config添加跟踪侦听器,但除此之外,您还可以在代码中添加跟踪侦听器(您需要引用Microsoft.WindowsAzure.Diagnostics.dll):

public class WebRole : RoleEntryPoint
{
    public override void Run()
    {
        var listener = new Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener();
        Trace.Listeners.Add(listener);

        ...
    }
}
于 2012-04-15T18:23:36.200 回答
0

另一种设置诊断的方法是通过配置文件。如果您最近创建了 VS 解决方案,它将自动为跟踪侦听器创建诊断插件和配置。使用配置文件 (diagnostics.wadcfg),不需要为不同的数据源编写代码。这是您可以开始使用的链接和示例文件:

http://msdn.microsoft.com/en-us/library/gg604918.aspx

您现在不能包含自定义性能计数器,并且您需要确保不要尝试为任何内容分配超过 4GB 的缓冲区(您可以保留为 0),否则它往往会失败。

注意,时间间隔格式(例如 PT1M)。那是一种序列化格式,所以 PTXM 是 X 分钟,而 PTXS 是 X 秒。您需要将其标记为内容并始终在 Visual Studio 中复制(位于项目的根目录),以便将其打包。

这是设置诊断的三种方法的链接 http://msdn.microsoft.com/en-us/library/windowsazure/hh411541.aspx

兰吉斯
http://www.opstera.com

于 2012-04-15T19:23:32.910 回答