2010-07-22 30 views
24

Tôi đang sử dụng elmah (v1.1.11517.0) và đang cố di chuyển cấu hình sang nguồn bên ngoài.Các tệp cấu hình bên ngoài với elmah

cấu hình của tôi hiện trông như thế này:

<?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 là hạnh phúc và chạy tốt, tuy nhiên cho ELMAH tôi nhận được lỗi

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

Đó là một nỗi đau, file ELMAH chắc chắn là có nhưng điều gì đó không vui.

Điều gì có thể gây ra điều này?

+0

Đã sáu tháng. Bạn nên chọn câu trả lời. – jessegavin

Trả lời

42

Lý do tại sao bạn không thể sử dụng phần tử configSource cho elmah là vì elmah được định nghĩa là một nhóm phần. Bạn có thể sử dụng configSource trên phần. Đó là lý do tại sao nó hoạt động trên log4net.

Nếu bạn cần sự riêng biệt config-file cho web triển khai như Dan Atkinson bạn có thể làm như sau:

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

Nhược điểm là bạn cần một tập tin cấu hình cho từng phần. Nhưng bạn thường làm điều đó cho các dự án triển khai web.

+1

Điều này sẽ không hoạt động - bạn cần phải bao quanh v.v. trong một thẻ . – UpTheCreek

+0

Bạn hoàn toàn đúng. Tôi đã thực hiện các thay đổi đối với ví dụ của mình. – Falle1234

+0

Câu trả lời hay. Cảm ơn! –

1

Tôi đã thêm tiền thưởng cho câu hỏi này vì tôi cũng muốn biết câu trả lời cho câu hỏi này.

Tôi cần nó vì tôi sử dụng chức năng Triển khai web thay thế tệp theo thuộc tính configSource của chúng.

Trong thời gian chờ đợi, bạn có thể di chuyển nội dung của elmah.config vào web.config của bạn, thay thế <elmah configSource="..." />.

+0

Bạn có chắc chắn rằng đây là vấn đề không? Kiểm tra web.config mẫu này từ thân cây elmah .. http://code.google.com/p/elmah/source/browse/trunk/samples/web.config Dường như một kịch bản được hỗ trợ. – madaboutcode

+4

Nó không hoạt động. –

+0

Tôi lấy ví dụ ban đầu của tôi trực tiếp từ thân cây elamh và tôi đã sử dụng nó trước khi không có vấn đề gì. Chỉ cần mắc kẹt vào một dự án hiện tại. – ilivewithian

Các vấn đề liên quan