2010-11-13 234 views
3

我在将WebRole(WCF服务)部署到Azure时遇到问题。我的WebRole至少持续30分钟,直到我放弃它。我通过Visual Studio 2010进行部署。我在寻找一些跟踪信息,并且有几个博客指出我的存储表名为WADInfrastructureLogsTableWADLogsTable诊断/日志存储表在哪里?

我已经设置了配置设置与我的存储帐户这样的:

<ConfigurationSettings> 
    <Setting name="DiagnosticsConnectionString" 
    value="DefaultEndpointsProtocol=https;AccountName=sandsofttestservice;AccountKey=HgPjkzx+mjqgoDTO8SBNB3B4hdARuibWTOHrXg4BpxRKJfRZ/s4abVIoD5lOIW0LkoD0CoMb0i0GiTXA483MDQ==" /> 
</ConfigurationSettings> 

我没有在表中所有我的存储账户。甚至在我已经成功部署了Hello World应用程序之后。我的Blob容器包含一个vsdeploy和一个wad控件容器,我有4个队列。

将要创建这些表?

public override bool OnStart() 
    { 
     var dm = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
     dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5); 
     dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
     DiagnosticMonitor.Start("DiagnosticsConnectionString", dm); 

     Trace.WriteLine("OnStart"); 
     // For information on handling configuration changes 
     // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. 
     RoleEnvironment.Changing += RoleEnvironmentChanging; 

     return base.OnStart(); 
    } 
+0

请参见我的博客http://blogs.msdn.com/b/windowsazure/archive/2012/10/25/using-trace-in-windows-azure-cloud-applications-1.aspx你不应该设置diag字符串在你的web.config文件中。 – RickAndMSFT 2012-11-20 07:06:02

回答

2

我也有类似的问题。我有'转移'期间设置为1分钟,它不会转移。但是,在我将其更新为5分钟后,我开始在WADLogsTable中看到跟踪消息。不知道为什么这有所作为,并没有找到任何有关最短转换时间的文档,但5分钟为我工作。

另外,还要确保你有适当的Trace.Writeline()在Web /辅助角色声明。

+0

1分钟工作正常。小于1的任何值都会被取整为1分钟。 – RickAndMSFT 2012-11-20 07:06:43

2

您是否设置了日志表的传输计划?也就是说,所有的日志记录都被缓存在每个实例中,并且您需要明确要求将数据定期保存在表存储中。这里有一个简单的例子为WADLogsTable:

 var dm = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
     dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5); 
     dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
     DiagnosticMonitor.Start("DiagnosticsConnectionString", dm); 

一旦建立起来,你应该看到WADLogsTable表出现了一段时间后。

你需要设置传输周期和筛选每一个其他类型的还有:

  • 事件日志
  • 诊断基础设施日志
  • 目录
  • 性能计数器
+0

感谢您的回答。现在我已经设置了预定的转移,我不给我WADLogsTable。我也试图创造一个全新的存储空间,但在那里也没有运气。 – 2010-11-13 14:27:33

+1

1.确保实际调用Trace.traceInformational()(或任何其他级别),可能在您的卷轴。cs在调用DiagnosticMonitor.Start()之后,生成要传输的内容。然后等待几分钟(无需退出应用程序)。偶尔需要几分钟才能创建表格。 – 2010-11-13 14:54:02

+1

@DavidMakogon:非常有帮助!不要使用Trace.WriteLine()或Trace.Write(),但使用Trace.TraceInformation,Trace.TraceError,Trace.TraceWarning。如果没有这个WADInfrastructureLogsTable note创建 – 2012-02-21 15:00:29

1

索伦 - 如果你有没有准备好,你应该重新生成存储帐户访问键。它在您的原始文章中列出了您的配置细节。

另一种选择,以帮助诊断你的问题的IntelliTrace。如果您使用的是Visual Studio 2010 Utimate,则可以在部署中启用Intellitrace。这可以让你下载Intellitrace日志文件,从这些文件中你可以看到与应用程序的部署和启动相关的一些非常详细的信息。可能会产生一些异常或其他错误,可能会导致长时间“忙碌”状态。