2016-01-04 4 views
0

Я использую ELMAH для регистрации ошибок в моей базе данных. Проблема, которую я имею здесь, заключается в том, что ELMAH всегда регистрирует ошибку в моей базе данных Production. У меня есть две строки подключения в моей базе данных, одна для «Live Environment» и одна для «Dev Environment».Лог ошибок 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" /> 

Остальная часть кода Elmah я скопированной из сайтов, доступных с подключением Elmah. Я установил все необходимые конфигурации, и это ошибка регистрации, но только для Live DB.

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

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

Спасибо заранее.

ответ

0

Вам необходимо использовать что-то вроде преобразований web.config, как описано в этом руководстве: Use multiple logs for different environments.

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

0

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

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

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

Как примечание, если вы удалите имя приложения, оно будет использовать имя сервера. Таким образом, исключения Dev будут просто видны для них, и если вы являетесь серверами dev/test/prod, то разные (не только разные домены) будут автоматически разделены именем сервера.