Elmah не создает таблицы SqlLite и хранимые процедуры - PullRequest
0 голосов
/ 14 февраля 2019

Я использую Elmah для регистрации необработанного исключения в ASP.NET MVC с использованием базы данных SqlLite.Когда я настраиваю Elmah с базой данных SqlLite, используя ниже

<elmah>
<!--
    See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for 
    more information on remote access and securing ELMAH.
-->
<security allowRemoteAccess="false" />
<errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="Elmah" />
</elmah>

, используя нижеприведенную строку подключения

<connectionStrings>
    <add name="Elmah" connectionString="data source=~/App_Data/Error.db" />
  </connectionStrings>

Это вызывает исключение

SQLiteException (0x1): SQL logic error
    no such table: Error]
       System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain) +1239
       System.Data.SQLite.SQLiteCommand.BuildNextCommand() +374
       System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index) +18
       System.Data.SQLite.SQLiteDataReader.NextResult() +309
       System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave) +266
       System.Data.`enter code here`SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior) +45
       System.Data.SQLite.SQLiteCommand.ExecuteReader() +21
       Elmah.SQLiteErrorLog.GetErrors(Int32 pageIndex, Int32 pageSize, IList errorEntryList) +235
       Elmah.ErrorLogPage.OnLoad(EventArgs e) +336
       System.Web.UI.Control.LoadRecursive() +59
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678`

Может кто-нибудь сказать мне, где яя не прав?

Как я могу настроить базу данных SqlLite с Elmah для ведения журнала?

1 Ответ

0 голосов
/ 15 февраля 2019

Вам не нужно создавать базу данных или запускать скрипт вручную, поскольку SQLLiteErrorLog делает это автоматически .Я только что проверил это, и оно работает следующим образом:

  1. Создайте новый веб-проект.
  2. Установите пакет ELMAH NuGet.
  3. Установите System.Data.SQLite NuGet.
  4. Добавьте следующее в web.config
<connectionStrings>
    <add name="Elmah" connectionString="data source=~/App_Data/Error.db" />
</connectionStrings>

...

<elmah>
    <security allowRemoteAccess="false" />
    <errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="Elmah" />
</elmah>
Нажмите F5 и перейдите к /elmah.axd.

Я выполнил вышеупомянутые шаги, а также вызвал исключение в одном из моих контроллеров и запросил этот маршрут.Файл Error.db успешно создан и зарегистрирована ошибка.

Если у вас уже есть файл с именем Error.db в папке App_Data, попробуйте удалить его и повторите попытку.

...