Регистрировать ошибки ELMAH в зависимости от используемой среды базы данных.

Я использую ELMAH для регистрации ошибок в моей базе данных. У меня проблема в том, что ELMAH всегда регистрирует ошибку в моей производственной базе данных. У меня есть две строки подключения в моей базе данных: одна для «Живой среды» и одна для «Среда разработки».

<add name="LivePortal" connectionString="Data Source=Live-Database;Initial Catalog=LivePortal;Persist Security Info=False;User ID=LivePortalAccess;Password=Password;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
<add name="DevConnectionString" connectionString="Data Source=dev-database;Initial Catalog=DevPortal;Persist Security Info=True;User ID=sa-admin;Password=Password" providerName="System.Data.SqlClient" />    
<add name="elmah-sqlserver" connectionString="Data Source=****;User ID=****;Password=****;Initial Catalog=****;" providerName="System.Data.SqlClient" />

<elmah>
<security allowRemoteAccess="false" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sqlserver" />

The rest of the ELMAH code I have copied from the sites available with ELMAH connection. I have put all the required configurations, and it is logging error but only for Live DB.

Я проверил другие сайты, но ни на одном из них нет никакой информации, если мы используем несколько баз данных, указывающих на используемую среду, то есть Live или Dev.

Любая помощь в этом была бы очень большой и полезной.

Заранее спасибо.


person Siddharth    schedule 04.01.2016    source источник


Ответы (2)


Вам нужно использовать что-то вроде преобразований web.config, как описано в этом руководстве: Используйте несколько журналов для разных сред.

По сути, вам нужна строка подключения, указывающая на базу данных dev в вашем файле web.config, а затем добавьте web.release.config, web.production.config или любую другую схему именования, указывающую на производственную базу данных.

person ThomasArdal    schedule 10.01.2016

У вас также есть возможность использовать одну и ту же базу данных для разработки и производства и просто изменить имя приложения.

<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="name" applicationName="dev/test/prod" />

Это не решает проблему программного изменения имени или строки подключения, но предлагает другой вариант.

В качестве примечания: если вы удалите имя приложения, оно будет использовать имя сервера. Таким образом, исключения разработчиков будут просто видны им, и если ваши серверы разработки/тестирования/производства разные (а не просто разные домены), они будут автоматически разделены по имени сервера.

person Tony Basallo    schedule 29.01.2016