Я не могу запустить диагностический монитор Azure

Я пытаюсь протестировать диагностический монитор Azue в облачном решении с помощью одного приложения asp.net.

Я получаю исключение каждый раз, когда пытаюсь запустить монитор диагностики:

        CloudStorageAccount account = CloudStorageAccount.Parse("UseDevelopmentStorage=true");

        Write(account.TableEndpoint.AbsoluteUri);

        // Get default initial configuration.
        var config = DiagnosticMonitor.GetDefaultInitialConfiguration();

        config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;
        config.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);

        // Start the diagnostic monitor with the modified configuration.
        DiagnosticMonitor.Start(account, config); // Exception

Исключение говорит:

System.ArgumentException was unhandled by user code
  Message=Directory C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest\bin\Debug\CloudDebuggingTest.csx\roles\CloudDebuggingTest.Web\diagnostics\x64\monitor does not exist.
  Source=Microsoft.WindowsAzure.Diagnostics
  StackTrace:
       at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.ValidateStartupInfo(DiagnosticMonitorStartupInfo startupInfo) in :line 0
       at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.StartWithExplicitConfiguration(DiagnosticMonitorStartupInfo startupInfo, DiagnosticMonitorConfiguration initialConfiguration) in :line 0
       at Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start(CloudStorageAccount storageAccount, DiagnosticMonitorConfiguration initialConfiguration) in :line 0
       at CloudDebuggingTest.Web._Default.StartDiagnostics() in C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest.Web\Default.aspx.cs:line 48
       at CloudDebuggingTest.Web._Default.Page_Load(Object sender, EventArgs e) in C:\Users\Me\Documents\Visual Studio 2010\Projects\CloudDebuggingTest\CloudDebuggingTest.Web\Default.aspx.cs:line 19
       at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
       at System.Web.UI.Control.LoadRecursive()
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: 

Я понятия не имею, что мне не хватает, я проверял некоторые ссылки, и они делают именно это. Есть идеи?

Ваше здоровье.


person vtortola    schedule 14.02.2011    source источник


Ответы (3)


Это должно быть шутит :|

Проблема в том, что путь слишком длинный, я переместил проект в D:\ и тогда он работает нормально @.@

Я нашел решение случайно, когда наткнулся на статью, в которой говорилось об ограничениях длины пути.

http://markegilbert.wordpress.com/2010/11/05/i-just-hit-my-head-on-a-cloud-microsoft-azure-and-full-path-limits/

Я тоже ударился головой :(

person vtortola    schedule 15.02.2011
comment
Возвращаясь к моему предыдущему замечанию, также обратите внимание, что если вы установите время передачи на 5 секунд, то вы фактически отключите передачу! См. blogs.msdn. .com/b/mcsuksoldev/archive/2010/06/25/ - person Stuart; 15.02.2011

Я не уверен в этой конкретной проблеме.

Однако одна вещь, которая может помочь, заключается в том, что необычно запускать диагностику в Page_Load — гораздо более типично запускать в методе Role Start.

Кроме того, я бы не рекомендовал использовать период в 5 секунд для передачи ваших лог-файлов — час или более обычно более удобен (хотя я понимаю, что этот параметр в данный момент существует только для того, чтобы помочь вам в тестировании!)

person Stuart    schedule 14.02.2011

Я обнаружил, что запуск проекта под IISExpress, а не веб-сервер IIS, устранил эту проблему для меня. Чтобы изменить это, перейдите к свойствам проекта Azure и перейдите на вкладку «Веб», вы можете изменить этот параметр.

person lockwobr    schedule 12.07.2013