Журнал Enterprise Library 5.0 на сервере sql не работает - PullRequest
1 голос
/ 17 февраля 2012

У меня проблемы со входом в SQL Server 2008 Express с использованием Enterprise Library 5.0. Он работает в моей среде разработки (VS2010), но НЕ на моем Server 2008 / SQL Server 2008 Express.

Чтобы убедиться в этомне была база данных, которую я также проверил с плоским файлом.Также не работал.

Оба файла присутствуют в моем каталоге bin.

Microsoft.Practices.EnterpriseLibrary.Logging.dll Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll

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

<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" />
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
  <section name="Space4it.Registertime.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
<listeners>
  <add name="Database Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    databaseInstanceName="TimeseddelLogging" writeLogStoredProcName="WriteLog"
    addCategoryStoredProcName="AddCategory" formatter="Text Formatter"
    traceOutputOptions="LogicalOperationStack, DateTime, Timestamp" />
</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="Database Trace Listener" />
    </listeners>
  </add>
</categorySources>
<specialSources>
  <allEvents switchValue="All" name="All Events">
    <listeners>
      <add name="Database Trace Listener" />
    </listeners>
  </allEvents>
  <notProcessed switchValue="All" name="Unprocessed Category" />
  <errors switchValue="All" name="Logging Errors &amp; Warnings">
    <listeners>
      <add name="Database Trace Listener" />
    </listeners>
  </errors>
</specialSources>
</loggingConfiguration>
<connectionStrings>
<add name="TimeseddelLogging" connectionString="Data Source=server\sqlexpress;Initial Catalog=logging.database;User ID=username;pwd=password"/>
</connectionStrings>

Я подключился вручную (в качестве теста), используя этого пользователя, и я могу ввести данные в таблицу журнала с этимпользователь.

Я получаю эту ошибку: Исключение:

Сообщение:

Произошла ошибка активации при попытке получить экземпляр типа LogWriter, ключ ""

Стек:

в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (тип serviceType, ключ String) в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.racter.Logging.Logger.get_Writer () в Space4it.Common.Log.Log.DoLog (Строковое сообщение, Строковая категория, Метаданные словаря`2, Исключение ex, тип TraceEventType, Приоритет LogPriority, Даже Int32 дажеtId) at Space4it.Registertime.Pages.TestForm.ButtonTest_Click (Отправитель объекта, EventArgs e)

Внутреннее исключение: Сообщение:

Не удалось разрешить зависимость, type = "Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter", name = "(none)". Исключение произошло во время: при разрешении. Исключение: InvalidOperationException - Тип База данных не может быть построена. Вы должны сконфигурировать контейнер для предоставления этого значения. ----------------------------------------------- В это время Исключением является контейнер: Resolving Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterImpl, LogWriter. default (сопоставлено с Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter, (нет)) Разрешение параметра "StructureHolder" конструктора Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterImpl (Microsoft.Practices.EnterpriseLibrary.Logging. Practices.EnterpriseLibrary.Logging.LogWriterStructureHolder, LogWriterStructureHolder. по умолчанию (сопоставлено с Microsoft.Practices.EnterpriseLibrary.Logging.LogWriterStructureHolder, (нет)) Разрешение параметра «traceNest .LogWriterStructureHolder (System.Collections.Generic.IEnumerable 1[[Microsoft.Practices.EnterpriseLibrary.Logging.Filters.ILogFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] filters, System.Collections.Generic.IEnumerable 1 [[System.String, mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089]] traceSourceNames, System.Collections.Generic.IE [[System.Diagnostics. instrumentationProvider) Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.ReconfigurableTraceListenerWrapper, Прослушиватель трассировки базы данных (сопоставленный с прослушивателем System.Diagnostics.TraceListener, Database Trace) Решающий параметр System.Diagnostics.TraceListener wrappedTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging.IL oggingUpdateCoordinator координатор) Разрешение Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener, Прослушиватель трассировки базы данных‌implementation (сопоставленный из System.Diagnostics.TraceListener, Прослушиватель трассировки базы данных) Параметр Resolving.Log.Exchange.Exchange.Exchange.Exchange. (База данных Microsoft.Practices.EnterpriseLibrary.Data.Database, System.String writeLogStoredProcName, System.String addCategoryStoredProcName, Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.ILogFormatter formatter) Разрешение

Внутренний стек исключений:

в Microsoft.Practices.Unity.UnityContainer.DoBuildUp (тип t, объект существует, имя строки, IEnumerable 1 resolverOverrides) at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, String name, IEnumerable 1 resolverOverrides) в Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance (тип serviceType, ключ String 10)

Надеюсь, кто-нибудь может мне помочь: -)

Хорошего дня!

1 Ответ

1 голос
/ 18 февраля 2012

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

Определен ли раздел регистрации в элементе вашего файла web.config?

Обновление:

Вы добавили свой элемент configSections, но то, что вы опубликовали, искажено: .Если это верно, то это проблема, неправильный конфиг.Исправьте закрывающий тег, и он должен начать работать.

...