0

У меня возникли трудности с получением журналов трассировки в Azure WorkerRole, написанных на локальном хранилище для разработки (конечная цель - хранилище Azure после развертывания). У меня есть поисковые запросы в течение нескольких дней и продолжайте искать множество примеров, подобных этому http://forums.asp.net/t/2041817.aspx?Azure+Getting+Trace+Data+to+Azure+Storage. К сожалению, несмотря на то, что эта дискуссия уже началась в марте 2015 года, она по-прежнему ссылается на решение, которое, по-видимому, не поддерживается. Кодная строкаСлед роли роли Azure в хранилище разработки

DiagnosticMonitorConfiguration diagnosticConfiguration = DiagnosticMonitor.GetDefaultInitialConfiguration(); 

использует класс DiagnosticMonitor, который, по-видимому, теперь устарел. Я либо не разбираюсь в правильных вещах, либо возникает поразительная нехватка информации о том, как настроить журналы трассировки в «новейшей» поддерживаемой форме. Я могу найти много информации о старом «устаревшем» способе.

Вот что у меня есть. App.config для моего работника роли имеет этот раздел определен:

<system.diagnostics> 
    <trace> 
     <listeners> 
      <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics"> 
       <filter type="" /> 
      </add> 
     </listeners> 
    </trace> 
</system.diagnostics> 

В самом деле, что автоматически добавлен шаблон, который создал WorkerRole. Я ничего не делал вручную с этим разделом.

Раздел WorkerRole в ServiceConfiguration.csdef выглядит следующим образом:

<WorkerRole name="Processor" vmsize="Small"> 
    <ConfigurationSettings> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" /> 
    </ConfigurationSettings> 
</WorkerRole> 

И раздел родственной роли в ServiceConfiguration.Local.cscfg выглядит следующим образом:

<Role name="Processor"> 
    <Instances count="1" /> 
     <ConfigurationSettings> 
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" /> 
     </ConfigurationSettings> 
</Role> 

Тогда у меня есть Трассировка заявление в одном из классов моего проекта WorkerRole, который выглядит следующим образом:

Trace.TraceInformation("Handling event"); 

diagnostics.wadcfgx, связанный с WorkerRole в проекте облака выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
    <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
    <WadCfg> 
     <DiagnosticMonitorConfiguration overallQuotaInMB="4096"> 
     <DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Verbose" /> 
     <Directories scheduledTransferPeriod="PT1M"> 
      <IISLogs containerName="wad-iis-logfiles" /> 
      <FailedRequestLogs containerName="wad-failedrequestlogs" /> 
     </Directories> 
     <PerformanceCounters scheduledTransferPeriod="PT1M"> 
      <PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\Web Service(_Total)\ISAPI Extension Requests/sec" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\Web Service(_Total)\Bytes Total/Sec" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\ASP.NET Applications(__Total__)\Requests/Sec" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\ASP.NET Applications(__Total__)\Errors Total/Sec" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\ASP.NET\Requests Queued" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\ASP.NET\Requests Rejected" sampleRate="PT3M" /> 
      <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT3M" /> 
     </PerformanceCounters> 
     <WindowsEventLog scheduledTransferPeriod="PT1M"> 
      <DataSource name="Application!*" /> 
     </WindowsEventLog> 
     <CrashDumps dumpType="Full"> 
      <CrashDumpConfiguration processName="WaAppAgent.exe" /> 
      <CrashDumpConfiguration processName="WaIISHost.exe" /> 
      <CrashDumpConfiguration processName="WindowsAzureGuestAgent.exe" /> 
      <CrashDumpConfiguration processName="WaWorkerHost.exe" /> 
      <CrashDumpConfiguration processName="DiagnosticsAgent.exe" /> 
      <CrashDumpConfiguration processName="w3wp.exe" /> 
     </CrashDumps> 
     <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" /> 
     </DiagnosticMonitorConfiguration> 
    </WadCfg> 
    <StorageAccount>teststorage</StorageAccount> 
    </PublicConfig> 
    <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> 
    <StorageAccount name="teststorage" endpoint="https://core.windows.net/" /> 
    </PrivateConfig> 
    <IsEnabled>true</IsEnabled> 
</DiagnosticsConfiguration> 

Azure хранения и вычислений эмулятор успешно запускается, когда я запустить приложение в Visual Studio. Со всем этим я ожидал бы перейти в Server Explorer в Visual Studio, разверните узел Azure до Хранения. Перейдите на узел (Development) и увидите, что есть таблица под узлом Tables, содержащая мои журналы трассировки, но там ничего нет.

Visual Studio IDE

Очевидно, что я делаю что-то не так, и до сих пор найти документацию достаточно ясно, либо в блоге или Microsoft, которая объясняет, как получить эту работу. Поэтому здесь я спрашиваю, что будет казаться чем-то относительно простым.

ответ

0

Вы используете SDK Version 2.5/2.5.1 и не поддерживает диагностику в эмуляторе. См. Эту ссылку для взлома изменений: https://msdn.microsoft.com/en-us/library/azure/dn873976.aspx#BKMK_breaking. С этой ссылке:

Диагностика журналы не собирается в Azure вычислительном эмулятор - Для проектов, ориентированных на Azure SDK версии 2.5, Лазурное не вычислять эмулятор больше не поддерживает сбор диагностических журналов, включая счетчики производительности , журналы инфраструктуры, журналы IIS и журналы событий . Кроме того, журналы больше не хранятся в хранилище Azure или хранилище разработки . Вы можете продолжить просмотр журналов приложений в окне вывода Visual Studio или в эмуляторе вычислений.Это влияет только на проекты , нацеленные на Azure SDK версии 2.5; проекты, которые продолжаются до целевых Azure SDK 2.4, не затрагиваются.

Таким образом, на сегодняшний день ваши варианты:

  • Цель вашего проекта использовать SDK версии 2.4.
  • Выполняйте тестирование только в облаке.
  • Ждите следующей версии SDK, надеясь, что эта проблема будет исправлена.
+0

Ну, это был очень быстрый, хотя и неудачный ответ. Спасибо за помощь. Я бы хотел проверить, что все настроено и настроено правильно локально, прежде чем публиковать на Azure. – meyousikmann

+0

Я нахожусь в той же лодке, что и вы, и это отстой! Не имея возможности проверять локально, это похоже на стрельбу в темноте и надежду на ее работу. Пока что мы придерживаемся SDK 2.4. –

Смежные вопросы