Ошибка активации при тестировании блока приложения обработки исключений - PullRequest
2 голосов
/ 14 мая 2010

Я получаю следующую ошибку при тестировании моей реализации EHAB:

ArgumentException - имена журналов событий должны состоять из печатных символов и не могут содержать *,? Или пробелы

Трассировка стека была:

{"Ошибка активации пытаясь получить экземпляр типа ExceptionPolicyImpl, ключ "LogPolicy" "} Трассировка стека System.Exception:
StackTrace "в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (Тип serviceType, String key) в C: \ Главная \ Chris \ Projects \ CommonServiceLocator \ главная \ Microsoft.Practices.ServiceLocation \ ServiceLocatorImplBase.cs: линия 53 в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance [TService] (String ключ в C: \ Главная \ Chris \ Projects \ CommonServiceLocator \ главная \ Microsoft.Practices.ServiceLocation \ ServiceLocatorImplBase.cs: линия 103 в Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicy.GetExceptionPolicy (Exception исключение, String policyName) в е: \ Строит \ EntLib \ Последнего \ Source \ Blocks \ ExceptionHandling \ Src \ ExceptionHandling \ ExceptionPolicy.cs: линия 131 в Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicy.HandleException (Exception exceptionToHandle, String policyName) в е: \ Строит \ EntLib \ Последнего \ Source \ Blocks \ ExceptionHandling \ Src \ ExceptionHandling \ ExceptionPolicy.cs: линия 55 в Blackbox.Exception.ExceptionMain.LogException (Exception pException) в C: _Work_Black Box \ Blackbox.Exception \ ExceptionMain.vb: линия 14 в BlackBox.Business.BusinessMain.TestExceptionHandling () в C: _Work_Black Box \ BlackBox.Business \ BusinessMain.vb: линия 16 в Blackbox.Service.Service1.TestExceptionHandling () в C: _Work_Black Box \ Blackbox.Service \ Service.svc.vb: линия 43-дюймовое Внутреннее Исключение: InnerException {"Разрешение сбой зависимости, тип = "Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyImpl", name = "LogPolicy". Произошло исключение while: вызов конструктора Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener (System.String источник, журнал System.String, System.String machineName, Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.ILogFormatter форматировщик). Исключение составляет: ArgumentException - Имена журнала событий должен состоять из печатных символов и не может содержать \, *,? или пробелы

На момент исключения контейнер был:

Разрешение Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyImpl, LogPolicy Разрешающий параметр "policyEntries" конструктора Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyImpl (System.String policyName, System.Collections.Generic.IEnumerable`1 [[Microsoft.Practices.EnterpriseLibrary.ExceptionHandlingEExpriceExceptionPy , Версия = 5.0.414.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35]] policyEntries) Разрешение Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyEntry, LogPolicy.All Исключения Разрешение параметра «обработчики» конструктора Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyEntry (System.Type exceptionType, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.PostHandlingAction postHandlingAction, System.Collections.Neber.Geric.IberSigner.Gen ИсключениеHandling.IExceptionHandler, Microsoft.Разрешение Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, LogPolicy.All Exceptions.Logging Обработчик исключений (сопоставленный из Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.IExceptionHandler, LogPolicy.Log Exception Exception Разрешение параметра «писатель» конструктора Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler (System.String logCategory, System.Int32 eventId, системный уровень System.Diagnostics.TraceEventType, системный заголовок System.String, приоритет System.Int32, формат System.TypeTypeType32 , Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter Writer) Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterImpl, LogWriter .__ default__ (сопоставлено с Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter, (нет)) Разрешающий параметр «structureHolder» конструктора Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterImpl (Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolder structureHolder, Microsoft.Practices.EnterpriseLEngter.LogingTempRenceLibRencePhBT updateCoordinator) Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolder, LogWriterStructureHolder .__ default__ (сопоставлено с Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolder, (нет)) Разрешение параметра «traceSources» конструктора Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolder (System.Collections.Generic.IEnumerable`1 [[Microsoft.Practices.EnterpriseLibrary.Logging.Filters.ILogFilter, Version.LogFilter, Microsoft.Price. 5.0.414.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35]] фильтры, System.Collections.Generic.IEnumerable`1 [[System.String, mscorlib, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089]] traceSourceNames, .Collections.Generic.IEnumerable`1 [[Microsoft.Practices.EnterpriseLibrary.Logging.LogSource, Microsoft.Practices.EnterpriseLibrary.Logging, Версия = 5.0.414.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 ]raryP.Er. .Logging.LogSource allEventsTraceSource, Microsoft.Practices.EnterpriseLibrary.Logging.LogSource notProcessedTraceSource, Microsoft.Practices.EnterpriseLibrary.Logging.LogSource errorTraceSource, System.String defaultCategor y, System.Boolean tracingEnabled, System.Boolean logWarningsWhenNoCategoriesMatch, System.Boolean revertImpersonation) Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.LogSource, General Разрешение параметра «traceListeners» конструктора Microsoft.Practices.EnterpriseLibrary.Logging.LogSource (System.String name, System.Collections.Generic.IEnumerable`1 [[System.Diagnostics.TraceListener, System, Version = 4.0.0.0, Culture = нейтральный , PublicKeyToken = b77a5c561934e089]] traceListeners, уровень System.Diagnostics.SourceLevels, System.Boolean autoFlush, Microsoft.Practices.EnterpriseLibrary.Logging.Instrumentation.ILoggingInstrumentationProvider InstrumentationProvider) Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.ReconfigurableTraceListenerWrapper, прослушиватель журнала событий (сопоставленный с System.Diagnostics.TraceListener, прослушиватель журнала событий) Разрешение параметра "wrappedTraceListener" для конструктора Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.ReconfigurableTraceListenerWrapper (System.Diagnostics.TraceListener wrappedTraceListener, Microsoft.Practices.EnterpriseLibrary.LoggingdibordinateLoging). Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, прослушиватель журнала событий - реализация (сопоставлено с System.Diagnostics.TraceListener, прослушиватель журнала событий - реализация)Вызов конструктора Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener (источник System.String, журнал System.String, имя System.String machineName, Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.ILogFormatter formatter) "} System.Exception

Мой web.config выглядит следующим образом:

<?xml version="1.0"?>
<configuration>

  <configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
    <section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
  </configSections>
  <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="C:\Blackbox.log" machineName="." traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, 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>
  <exceptionHandling>
    <exceptionPolicies>
      <add name="LogPolicy">
        <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>
      <add name="WcfExceptionShielding">
        <exceptionTypes>
          <add name="InvalidOperationException" type="System.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            postHandlingAction="ThrowNewException">
            <exceptionHandlers>
              <add type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.FaultContractExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                exceptionMessageResourceType="" exceptionMessageResourceName="This is the message"
                exceptionMessage="This is the exception" faultContractType="Blackbox.Service.WCFFault, Blackbox.Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
                name="Fault Contract Exception Handler">
                <mappings>
                  <add source="{Guid}" name="Id" />
                  <add source="{Message}" name="MessageText" />
                </mappings>
              </add>
            </exceptionHandlers>
          </add>
        </exceptionTypes>
      </add>
    </exceptionPolicies>
  </exceptionHandling>
  <connectionStrings>
    <add name="CompassEntities" connectionString="metadata=~\bin\CompassModel.csdl|~\bin\CompassModel.ssdl|~\bin\CompassModel.msl;provider=Devart.Data.Oracle;provider connection string=&quot;User Id=foo;Password=foo;Server=foo64mo;Home=OraClient11g_home1;Persist Security Info=True&quot;"
      providerName="System.Data.EntityClient" />
    <add name="BlackboxEntities" connectionString="metadata=~\bin\BlackboxModel.csdl|~\bin\BlackboxModel.ssdl|~\bin\BlackboxModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=sqldev1\cps;Initial Catalog=FundServ;Integrated Security=True;MultipleActiveResultSets=True&quot;"
      providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

Мой код выглядит следующим образом:

Public Shared Function LogException(ByVal pException As System.Exception) As Boolean
        Return ExceptionPolicy.HandleException(pException, "LogPolicy")
    End Function

Любая помощь приветствуется.

1 Ответ

4 голосов
/ 14 мая 2010

Ваш лог логин неверен. Предполагается указать на журнал событий. Так что это будет "BlackBox" или "Приложение"

 <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="Blackbox" machineName="." traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, Callstack" />

Если вы хотите записать в файл, используйте

  listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...