题
我在部署Webrole(WCF服务)的问题上有问题 天蓝色. 。我的Webrole一直表现出至少30分钟,直到我中止它。我通过Visual Studio 2010部署。我正在寻找一些跟踪信息,并且有一些博客将我指向储存表 WADInfrastructureLogsTable
和 WADLogsTable
.
我已经使用这样的存储帐户设置了配置设置:
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=sandsofttestservice;AccountKey=HgPjkzx+mjqgoDTO8SBNB3B4hdARuibWTOHrXg4BpxRKJfRZ/s4abVIoD5lOIW0LkoD0CoMb0i0GiTXA483MDQ==" />
</ConfigurationSettings>
我的存储帐户中根本没有表。即使在我部署之后也没有 你好世界 应用程序成功。我的斑点容器容纳一个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();
}
解决方案
我也有类似的问题。我将“转移”期设置为1分钟,不会转移。但是,将其更新为5分钟后,我开始在Wadlogstable中看到跟踪消息。不知道为什么这会有所作为,也没有找到任何关于最低转移期的文档,但是5分钟对我有用。
另外,请确保您在Web/Worker角色中具有适当的TraceLiteline()语句。
其他提示
您是否设置了日志表的转移时间表?也就是说,所有日志记录都将在每个实例中都被缓存,并且您需要明确要求将这些数据定期持续在表存储中。这是Wadlogstable的微不足道示例:
var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);
设置此设置后,您应该在一段时间后看到Wadlogstable表格出现。
您还需要设置转移期并为其他每种类型过滤:
- 事件簿
- 诊断基础架构日志
- 目录
- 性能计数器
索伦 - 如果您还没有,则可能应该再生存储帐户访问密钥。它在您的原始帖子中列出了您的配置详细信息。
帮助诊断问题的另一个选择是IntelliTrace。如果您使用的是Visual Studio 2010 Utimate,则可以通过部署启用IntelliTrace。这将使您可以下载IntelliTrace日志文件,并且可以从那些文件中看到一些与应用程序的部署和启动有关的非常详细的信息。可能有一些例外或其他错误可能导致延长的“繁忙”状态。