Azure中的工作者角色工作?

时间:2012-05-15 13:04:41

标签: azure scheduled-tasks azure-worker-roles

我有一个通过辅助角色发送自动邮件的应用程序。 当我在Visual Studio中调试我的应用程序时,我在WorkerRole.cs中设置OnStart()的任务工作正常,我每5分钟收到一封邮件(用于测试目的)。 我在WorkerRole.cs中的代码:

   public override bool OnStart()

    {
        ScheduledTaskTimer.Elapsed += new ElapsedEventHandler(ScheduledTaskTimer_Elapsed);
        // ScheduledTaskTimer.Interval = 86400000;
        ScheduledTaskTimer.Interval = 180000;

        ScheduledTaskTimer.Enabled = true;
        return base.OnStart(); }

但是当我部署到Windows Azure时,我的工作角色似乎不起作用。 我从未收到任何邮件..我不知道如何检查工作者角色是否真正在运行..

2 个答案:

答案 0 :(得分:1)

您可以使用Microsoft提供的silverlight界面查看您的工作人员角色的状态:http://windows.azure.com

如果您发现您的WorkerRole从未处于“就绪”状态,则通常意味着您的WorkerRole无法启动。这意味着OnStart()方法可能会引发异常。

如果你想了解发生了什么,你可以:

  1. configure event logs recording
  2. configure Remote Desktop Protocol to access the server
  3. 尝试捕获OnStart方法中的所有代码并将异常记录在数据库中。您可以使用ELMAH
  4. 轻松完成此操作

答案 1 :(得分:0)

请在下面的问题中研究我的评论:

Webrole is not starting and always busy

对于工作人员角色,如果您没有运行Web服务器,则无需执行上述步骤2),仍然可以执行所有其他步骤来解决此问题。