2013-03-25 91 views
0

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

是否有类似的功能可以通过RDP在Cloud Service上使用?比如在命令提示符或power shell中启动/重新启动角色?如果不是,调试/记录工作角色正在做什么(不使用Intellitrace)的最佳方法是什么?我在项目中启用了诊断功能,但它似乎没有给我与计算机仿真器控制台相同的细节级别。我已经在本地主机上重新运行角色和相应的.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()将创建一个新的文本文件和记录你把任何消息在那里。我在下面的答案中找到了一个例子。

回答

2

我不知道工人角色的控制台。如果诊断不能给你提供任何帮助,那么你需要做一点小事。尝试将消息和错误追踪到自己的blob存储。 Steve Marx在这里有一个很好的例子http://blog.smarx.com/posts/printf-here-in-the-cloud

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

+0

今天晚上我会试一试,让你知道结果如何。感谢这篇文章 - 我以为我会搜索所有内容,但我想不是。 – floppsb 2013-03-26 18:07:23

+0

我使用了一些代码来创建一个会记录日志的类 - 这应该有助于缩小我的问题。谢谢。 – floppsb 2013-03-27 02:10:45

相关问题