我在向Azure部署WebRole(WCF服务)时遇到问题。我的WebRole持续显示至少30分钟,直到我中止它。我通过Visual Studio 2010进行部署。我正在寻找一些跟踪信息,并且有一些博客指向了名为WADInfrastructureLogsTable
和WADLogsTable
的存储表。
我已使用我的存储帐户设置配置设置,如下所示:
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=sandsofttestservice;AccountKey=HgPjkzx+mjqgoDTO8SBNB3B4hdARuibWTOHrXg4BpxRKJfRZ/s4abVIoD5lOIW0LkoD0CoMb0i0GiTXA483MDQ==" />
</ConfigurationSettings>
我的存储空间帐户中根本没有表格。甚至在我成功部署 Hello World 应用程序之后。我的Blob容器包含一个vsdeploy-和一个wad-control-container,我有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 :(得分:2)
您是否为Logs表设置了转移计划?也就是说,所有日志记录都会缓存在每个实例中,您需要明确要求将这些数据定期保存在表存储中。这是WADLogsTable的一个简单示例:
var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);
设置完成后,您应该会在一段时间后看到WADLogsTable表。
您还需要设置转移期并过滤其他每种类型:
答案 1 :(得分:2)
我有类似的问题。我将“转移”期间设置为1分钟,但不会转移。但是,在我将其更新为5分钟后,我开始在WADLogsTable中看到跟踪消息。不知道为什么会有所作为,并且没有找到任何关于最短转移期的文件,但是5分钟对我有效。
还要确保您的Web /辅助角色中有适当的Trace.Writeline()语句。
答案 2 :(得分:1)
Soren - 如果您还没有,则应该重新生成存储帐户访问密钥。它在您的原始帖子中列出了您的配置详细信息。
帮助诊断问题的另一个选择是Intellitrace。如果您使用的是Visual Studio 2010 Utimate,则可以在部署中启用Intellitrace。这将允许您下载Intellitrace日志文件,您可以从中查看有关应用程序部署和启动的一些非常详细的信息。可能会产生一些异常或其他错误,可能导致延长的“忙碌”状态。