首页 文章

用于辅助角色 Cloud 服务的Windows Azure控制台

提问于
浏览
0

我有一个工作角色 Cloud 服务,我最近在我的本地机器上开发 . 该服务公开一个WCF接口,该接口将文件作为字节数组接收,重新编译该文件,将其转换为适当的格式,然后将其存储在Azure存储中 . 我设法在我的机器上使用Azure计算模拟器完成所有工作并将服务发布到Azure并且......没有 . 再次在我的机器上运行它,它按预期工作 . 当我在计算机上进行操作时,Azure Compute Emulator的控制台输出对于运行应用程序至关重要 .

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

Edit: The Next Best Thing

回到手动记录,我实现了一个类,它将文本文件提供给我的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()将创建一个新的文本文件并记录您放入的任何消息 . 我在下面的答案中找到了一个例子 .

1 回答

  • 2

    没有工作人员角色的控制台,我会给你任何帮助,然后你需要有点hacky . 尝试自己跟踪消息和错误以获取blob存储 . 史蒂夫马克思在这里有一个很好的例子http://blog.smarx.com/posts/printf-here-in-the-cloud

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

相关问题