Корпоративная библиотека 5. Исключения, которые не регистрируются в журнале событий в Windows Azure - PullRequest
0 голосов
/ 12 мая 2011

У меня есть служба WCF, которая развернута как веб-роль Windows Azure.

Я использую Enterprise Library для обработки исключений, и в моей локальной среде разработки исключения, похоже, обрабатываются и регистрируются правильно с помощью событияОбработчик журнала (ведение журнала в журнале событий приложения).

Когда он работает в Azure, а политика исключений, кажется, применяется (поскольку я наблюдаю правильную обработку определенных ожидаемых исключений), ничего не регистрируется вЖурнал событий.

Вот политика обработки исключений:

<add name="Entity">
  <exceptionTypes>
    <add name="All Exceptions"
         type="System.Exception, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         postHandlingAction="NotifyRethrow">
      <exceptionHandlers>
        <add name="Logging Exception Handler"
             type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
             logCategory="General" 
             eventId="100" 
             severity="Error" 
             title="Enterprise Library Exception Handling"
             formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"
             priority="0" />
      </exceptionHandlers>
    </add>
  </exceptionTypes>
</add>

А вот конфигурация ведения журнала:

 <loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
   <listeners>
     <add name="Event Log Listener"
          type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" source="Enterprise Library Logging" formatter="Text Formatter"
          log="Application" 
          machineName="." 
          traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack" />
  </listeners>
  <formatters>
    <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         template="Timestamp: {timestamp}{newline}&#xA;Message: {message}{newline}&#xA;Category: {category}{newline}&#xA;Priority: {priority}{newline}&#xA;EventId: {eventid}{newline}&#xA;Severity: {severity}{newline}&#xA;Title:{title}{newline}&#xA;Machine: {localMachine}{newline}&#xA;App Domain: {localAppDomain}{newline}&#xA;ProcessId: {localProcessId}{newline}&#xA;Process Name: {localProcessName}{newline}&#xA;Thread Name: {threadName}{newline}&#xA;Win32 ThreadId:{win32ThreadId}{newline}&#xA;Extended Properties: {dictionary({key} - {value}{newline})}" 
         name="Text Formatter" />
  </formatters>
  <categorySources>
    <add switchValue="All" name="General">
      <listeners>
        <add name="Event Log Listener" />
      </listeners>
    </add>
  </categorySources>
  <specialSources>
    <allEvents switchValue="All" name="All Events" />
    <notProcessed switchValue="All" name="Unprocessed Category" />
    <errors switchValue="All" name="Logging Errors &amp; Warnings">
      <listeners>
        <add name="Event Log Listener" />
      </listeners>
    </errors>
  </specialSources>
</loggingConfiguration>

Есть идеи, что происходит?

Ответы [ 2 ]

3 голосов
/ 12 мая 2011

Лучший способ ведения журнала - использовать прослушиватель диагностической трассировки. Имена журналов событий в Windows Azure отличаются. Для работы с этой корпоративной библиотекой вам необходимо перейти с прослушивателя журнала событий на прослушиватель диагностической трассировки Windows Azure. У нас есть больше информации об этом в нашей книге " Перемещение приложений в облако ". Код в VS 2008, но вы можете открыть в VS 2010, чтобы увидеть примеры. В этом коде мы увидим, как мы настраиваем ведение журнала корпоративной библиотеки с помощью прослушивателя трассировки Windows Azure. Вам нужно убедиться, что вы переместили журналы, чтобы увидеть информацию. Книга подробно рассказывает об этом.

Если вы хотите просто бегло взглянуть, вы можете загрузить музыкальное приложение здесь с нашего сайта codeplex, который показывает, как использовать Enterprise Library с Windows Azure. Это более старая версия, над которой мы работаем.

Подробнее о трассировке здесь .

1 голос
/ 14 августа 2013

Обязательное условие для использования прослушивателя трассировки журнала событий с настройками по умолчанию - убедиться, что установлен источник событий по умолчанию («Ведение журнала корпоративной библиотеки»). Чтобы установить этот источник событий (или любой другой пользовательский источник) и использовать этот прослушиватель, можно использовать задачу запуска, которая выполняет сценарии Windows PowerShell. Эти сценарии устанавливают пользовательский источник. A QuickStart с соответствующим сценарием PowerShell использует этот подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...