2013-03-25 1 views
0

У меня есть облачная служба рабочего ролика, которую я недавно разработал на своей локальной машине. Служба предоставляет интерфейс WCF, который получает файл в виде байтового массива, перекомпилирует файл, преобразует его в соответствующий формат и сохраняет его в Azure Storage. Мне удалось заставить все работать с использованием Azure Compute Emulator на моей машине и опубликовать сервис Azure и ... ничего. Выполняя его снова на моей машине, он работает так, как ожидалось. Когда я работал над этим на своем компьютере, выход консоли Azure Compute Emulator был необходим для запуска приложения.Консоль Windows Azure для рабочего облака службы ролей

Есть ли аналогичная функциональность, которую можно использовать для облачной службы через RDP? Например, запуск/перезапуск роли в командной строке или в командной оболочке? Если нет, то как лучше всего отлаживать/записывать то, что делает рабочая роль (без использования Intellitrace)? У меня диагностика включена в проекте, но, похоже, она не дает мне такой же уровень детализации, как консоль Computer Emulator. Я снова запустил роль и соответствующее приложение .NET на localhost и не смог найти никаких возможных ошибок в консоли.

Edit: The Next Best Thing

Падение обратно в ручной рубки, я реализовал класс, который будет кормить текстовые файлы в свой аккаунт Azure Storage. Вот код:

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

Нет консоли для рабочих ролей, о которых я знаю. Если диагностика не дает вам никакой помощи, вам нужно немного взломать. Попробуйте трассировать сообщения и ошибки для хранения памяти. Стив Маркс имеет хороший пример этого здесь http://blog.smarx.com/posts/printf-here-in-the-cloud

Как он отмечает в статье, это не для производства, а только для того, чтобы помочь вам найти вашу проблему.

+0

Я попробую сегодня вечером и дам вам знать, как это получается. Спасибо за статью - я думал, что все пойду в googled, но, полагаю, нет. – floppsb

+0

Я использовал некоторый код для создания класса, который будет вести журнал - это, надеюсь, поможет сузить мою проблему. Благодарю. – floppsb