3

我在将 WebRole(WCF 服务)部署到Azure时遇到问题。我的 WebRole 持续显示忙碌至少 30 分钟,直到我中止它。我通过 Visual Studio 2010 进行部署。我正在寻找一些跟踪信息,并且有一些博客将我指向名为WADInfrastructureLogsTableand的存储表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();
    }
4

3 回答 3

2

Have you set up a transfer schedule for the Logs table? That is, all logging gets cached in each instance, and you need to explicitly ask for that data to be persisted in table storage on a periodic basis. Here's a trivial example for WADLogsTable:

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

Once this is set up, you should see the WADLogsTable table appear after a while.

You'll need to set up the transfer period and filter for each of the other types as well:

  • Event log
  • Diagnostics infrastructure log
  • Directories
  • Performance counters
于 2010-11-13T02:48:00.950 回答
2

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

还要确保您的 web/worker 角色中有适当的 Trace.Writeline() 语句。

于 2010-11-15T23:47:28.317 回答
1

Soren - 如果您还没有,您可能应该重新生成您的存储帐户访问密钥。它与您的配置详细信息一起列在您的原始帖子中。

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

于 2010-11-15T03:07:33.757 回答