【问题标题】:Windows Azure Console for Worker Role Cloud Service用于工作人员角色云服务的 Windows Azure 控制台
【发布时间】:2013-03-14 12:20:06
【问题描述】:

我最近在本地机器上开发了一个工作角色云服务。该服务公开了一个 WCF 接口,该接口以字节数组的形式接收文件,重新编译文件,将其转换为适当的格式,然后将其存储在 Azure 存储中。我设法在我的机器上使用 Azure Compute Emulator 让一切正常工作,并将服务发布到 Azure,然后......什么也没有。再次在我的机器上运行它,它按预期工作。当我在我的计算机上处​​理它时,Azure Compute Emulator 的控制台输出对于让应用程序运行至关重要。

是否有可以通过 RDP 在云服务上使用的类似功能?例如在命令提示符下或在 power shell 中启动/重新启动角色?如果没有,调试/记录工作人员角色正在做什么的最佳方法是什么(不使用 Intellitrace)?我在项目中启用了诊断,但它似乎没有给我提供与计算机模拟器控制台相同级别的详细信息。我已在 localhost 上再次重新运行角色和相应的 .NET 应用程序,但无法在控制台中找到任何可能的错误。

编辑:下一个最好的事情

回到手动日志记录,我实现了一个类,它将文本文件馈送到我的 Azure 存储帐户。代码如下:

public class EventLogger
{
    public static void Log(string message)
    {
        CloudBlobContainer cbc;
        cbc = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageClientAccount"))
                   .CreateCloudBlobClient()
                   .GetContainerReference("errors");
        cbc.CreateIfNotExist();
        cbc.GetBlobReference(string.Format("event-{0}-{1}.txt", RoleEnvironment.CurrentRoleInstance.Id, DateTime.UtcNow.Ticks)).UploadText(message);
    }

}

调用 ErrorLogger.Log() 将创建一个新的文本文件并记录您在其中输入的任何消息。我在下面的答案中找到了一个例子。

【问题讨论】:

    标签: wcf azure azure-worker-roles


    【解决方案1】:

    据我所知,没有用于工作人员角色的控制台。如果诊断没有给您任何帮助,那么您需要变得有点 hacky。尝试自己追踪消息和错误以进行 Blob 存储。史蒂夫马克思在这里有一个很好的例子http://blog.smarx.com/posts/printf-here-in-the-cloud

    正如他在文章中指出的那样,这不是用于生产的,只是为了帮助您找到问题。

    【讨论】:

    • 今晚我会试一试,然后告诉你结果如何。感谢您的文章 - 我以为我已经搜索了所有内容,但我想没有。
    • 我使用了一些代码来创建一个可以进行日志记录的类——这有望帮助缩小我的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 2014-11-07
    相关资源
    最近更新 更多