2013-03-25 125 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

相關問題