Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

External Config Files with elmah

Tags:

I am using elmah (v1.1.11517.0) and am trying to move the config to an external source.

My config currently looks like this:

<?xml version="1.0"?> <configuration>     <configSections>         <sectionGroup name="elmah">             <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>             <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />             <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />             <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>             <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah"/>         </sectionGroup>         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>     </configSections>     <log4net configSource="Settings\RobDev\log4net.config" />     <elmah configSource="Settings\RobDev\ELMAH.config" /> </configuration> 

log4net is happy and runs fine, however for elmah I get the error

Parser Error Message: The attribute 'configSource' cannot be specified because its name starts with the reserved prefix 'config' or 'lock'. 

Which is a pain, the elmah file is definitely there, but something isn't happy.

What might be causing this?

like image 475
ilivewithian Avatar asked Jul 22 '10 16:07

ilivewithian


1 Answers

The reason why you can't use the configSource element for elmah is because elmah is defined as a sectionGroup. You can use the configSource on Sections. That is why it works on log4net.

If you need the seperate config-file for web-deployment like Dan Atkinson you could do the following:

<?xml version="1.0"?> <configuration>     <configSections>         <sectionGroup name="elmah">             <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>             <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />             <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />             <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>             <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah"/>         </sectionGroup>         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>     </configSections>     <log4net configSource="Settings\RobDev\log4net.config" />     <elmah>         <errorLog configSource="Settings\RobDev\errorLog.config" />         <errorMail configSource="Settings\RobDev\errorMail.config" />         <errorFilter configSource="Settings\RobDev\errorFilter.config" />         <errorTweet configSource="Settings\RobDev\errorTweet.config" />          <security configSource="Settings\RobDev\security.config" />     </elmah> </configuration> 

The downside is that you need a config file for each section. But you often do that for web deployment projects.

like image 78
Falle1234 Avatar answered Sep 17 '22 23:09

Falle1234