0

我有一个通过工作角色发送自动邮件的应用程序。当我在 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 时,我的辅助角色似乎不起作用。我从来没有收到任何邮件..我不知道如何检查工人角色是否真的在运行..

4

2 回答 2

1

您可以使用 Microsoft 提供的 silverlight 界面查看您的辅助角色的状态,网址为:http: //windows.azure.com

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

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

  1. 配置事件日志记录
  2. 配置远程桌面协议以访问服务器
  3. 对 OnStart 方法中的所有代码进行 try catch 并将异常记录在数据库中。您可以使用ELMAH轻松完成此操作
于 2012-05-15T19:55:35.740 回答
0

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

Webrole 没有启动并且总是很忙

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

于 2012-05-15T14:02:10.533 回答