Где ELMAH сохраняет свои данные?

Я только что установил ELMAH.MVC (дополнительная информация здесь), и мне было интересно, где сохраняются его данные. Я читал, что вы можете настроить базу данных для хранения, но кажется, что установка по умолчанию использует «в памяти»? Как это работает? Если я перезапущу пул приложений или веб-сайт IIS, потеряю ли я все данные? Спасибо!


person Joao Leme    schedule 18.02.2012    source источник
comment
Это более полезная ссылка для получения дополнительной информации.   -  person M.Babcock    schedule 18.02.2012
comment
code.google.com/p/elmah   -  person Adrian Iftode    schedule 18.02.2012
comment
Вы устанавливаете большинство параметров в web.config/app.config, если вы посмотрите пример, вы увидите (разумные) инструкции по настройке различных типов хранилища.   -  person Joachim Isaksson    schedule 18.02.2012


Ответы (2)


Да, по умолчанию он использует память. Когда ваш пул приложений перезапускается, вы теряете данные elmah. Если я хорошо помню, старые версии elmah использовали папку App_Data для хранения xml-файлов... Если вы хотите использовать базу данных для хранения журналов, просто укажите строку подключения в разделе конфигурации elmah:

<elmah>
...
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ElmahConnectionString"/> 

...
</elmah>

Вы должны иметь ElmahConnectionString в разделе connectionStrings, что-то вроде этого:

<connectionStrings>
    <add name="ElmahConnectionString "
         connectionString="Initial Catalog=my_database;data source=.\SQLEXPRESS;Integrated Security=SSPI;"
         providerName="System.Data.SqlClient" />
...
</connectionStrings>

Здесь вы можете найти пример web.config файл.

person Aleksandar Vucetic    schedule 18.02.2012
comment
Я получаю Не удалось найти хранимую процедуру 'ELMAH_GetErrorsXml'.! Уже установлен nuget.org/packages/elmah.sqlserver, но проблема остается. Помните, что я использую Elmah.MVC поверх Elmah (не уверен, что это имеет значение). Любая помощь? Спасибо! - person Joao Leme; 19.02.2012
comment
Понятно! ответ stackoverflow.com/a/5380167/1133338 . Мне пришлось вручную запустить скрипт sql для создания таблицы. Поэтому мне было интересно, что сделал nuget.org/packages/elmah.sqlserver (кроме добавления пустой строки подключения в мой web.config? - person Joao Leme; 19.02.2012
comment
Вероятно, он просто добавил запись errorLog в конфигурацию elmah... он не может манипулировать вашей базой данных, потому что не знает, как к ней подключиться. - person Aleksandar Vucetic; 19.02.2012

Прочтите в теме "Изучение класса ErrorLog", и вы найдете ответ

Использование модулей и обработчиков HTTP для создания подключаемых компонентов ASP.NET

person Dot Freelancer    schedule 18.02.2012