Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 只记录了一些跟踪消息_Azure_Azure Diagnostics - Fatal编程技术网

Azure 只记录了一些跟踪消息

Azure 只记录了一些跟踪消息,azure,azure-diagnostics,Azure,Azure Diagnostics,在我的Azure应用程序中,我有Trace.WriteLine调用来跟踪应用程序正在做什么 让我感到难堪的是,其中一些成功了,而另一些却没有。例如,我的工作者角色OnStart方法中的以下代码片段: Trace.WriteLine("WorkerRole: creating storage tables", "Information"); CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("Dat

在我的Azure应用程序中,我有Trace.WriteLine调用来跟踪应用程序正在做什么

让我感到难堪的是,其中一些成功了,而另一些却没有。例如,我的工作者角色OnStart方法中的以下代码片段:

Trace.WriteLine("WorkerRole: creating storage tables", "Information");
CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudTableClient tableClient = account.CreateCloudTableClient();
if (tableClient.CreateTableIfNotExist("Devices")) {
    Trace.WriteLine("WorkerRole.OnStart: Devices table created", "Information");
}else{
    Trace.WriteLine("WorkerRole.OnStart: Devices table not created. Already exists?", "Information");
}
第一个跟踪被记录下来。if语句中的跟踪调用都没有被记录。随后执行的方法中的跟踪方法会被记录下来


有什么想法吗?

在您的角色启动方法中,您是否正在调整DiagnosticMonitor配置?默认情况下,跟踪日志不会传输到存储,除非您告诉它:

  public override bool OnStart()
   {
       #region SetupDiagnostics Set up diagnostics

       DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultIniialConfiguration();
       TimeSpan tsOneMinute = TimeSpan.FromMinutes(1);

       dmc.Logs.ScheduledTransferPeriod = tsOneMinute;     // Transfer logs every minute
       dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;    // Tansfer verbose, critical, etc. logs

       // Start up the diagnostic manager with the given configuration
       DiagnosticMonitor.Start("DiagnosticsConnectionString", dmc);

       #endregion
  }

也许有什么东西在你背后抛出了一个异常?我也在想,尽管我已经尝试过在大多数可能抛出的碎片周围使用包装纸。似乎有些跟踪确实被记录了下来,但只是几分钟后。我在这里发布了可能与此问题重复或不重复的内容:在我的场景中,我可以向您保证,抛出的异常不会导致问题,因为我可以在调试代码时在本地复制它。跟踪将很好地输出到输出窗口,但不管它是否显示在我的Azure表中,这都是一个掷硬币的过程。是的,我这样做了。似乎我的工作者角色在某个地方悄无声息地崩溃了,在那里我没有一个try-catch代码块。