2010-07-22 23 views
24

Elmah (v1.1.11517.0) kullanıyorum ve yapılandırmayı harici bir kaynağa taşımaya çalışıyorum.Harici Yapılandırma Dosyaları ile elmah

Benim yapılandırma şu anda şöyle görünür:

<?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 mutlu ve ben bir acıdır hatası

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

olsun ELMAH için ancak iyi çalışır, Elmalı dosyası kesinlikle yoktur ama bir şey mutlu değil.

Buna neden olabilir?

+0

Altı ay oldu. Bir cevap seçmelisin. – jessegavin

cevap

42

Elmah için configSource öğesini kullanamamanın nedeni, elmah'un bir sectionGroup olarak tanımlanmasıdır. Kısımlarda configSource kullanabilirsiniz. Bu yüzden log4net üzerinde çalışır. Eğer aşağıdaki yapabileceğini Dan Atkinson gibi web-dağıtım için ayrı yapılandırma dosyası gerekiyorsa

:

<?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> 

dezavantajı her bölüm için bir yapılandırma dosyası ihtiyaç vardır. Ancak bunu web dağıtım projeleri için sık sık yaparsınız.

+1

Bu işe yaramaz - bir etikette vb çevrelemeniz gerekir. – UpTheCreek

+0

Kesinlikle haklısınız. Değişiklikleri benim örneğimde yaptım. – Falle1234

+0

Harika cevap. Teşekkürler! –

1

Bu sorunun cevabını bilmek isterim diye bu soruya bir ödül ekledim.

Buna ihtiyacım var çünkü dosyaları ConfigSource öznitelikleriyle değiştiren Web Deployment işlevselliğini kullanıyorum.

Bu arada, <elmah configSource="..." />'un yerine, elmah.config içeriğini web.config dosyanıza taşıyabilirsiniz.

+0

Bunun bir sorun olduğuna emin misin? Bu örnek web.config dosyasını elmah gövdesinden kontrol edin .. http://code.google.com/p/elmah/source/browse/trunk/samples/web.config Desteklenen bir senaryo gibi görünüyor. – madaboutcode

+4

Çalışmıyor. –

+0

Orijinal örneğimi doğrudan elam gövdesinden aldım ve daha önce hiç sorun yaşamadan kullanıyorum. Sadece mevcut bir projeye takıldım. – ilivewithian

İlgili konular