2010-01-04 25 views
5

Tôi đang phát triển dự án asp.net và tôi chưa có tệp web.config dài (hơn 400 dòng). nhưng với log4net nhibernate và urlrewrites này. ngày càng lớn. là có một cách thích hợp để chia web.config thành miếng. như nhibernate.config và log4net.config ofcourse urlrewrite.configchia web.config

Trả lời

20

system.webServer là phần cấu hình nhóm - bạn không thể bên ngoài đó.

Bạn chỉ có thể đặt configSource = trên cấu hình phần - ví dụ:

<system.webServer> 
    <validation configSource="validation.config"/> 
    <modules configSource="modules.config" /> 
    <handlers configSource="handlers.config" /> 
</system.webServer> 

một nhóm phần cấu hình hoặc một phần cấu hình bình thường chỉ có thể được xác định bằng cách nhìn vào tài liệu cho những điều (và thậm chí sau đó nó thường không phải là rất dễ dàng để tìm hiểu xem đó là một phần hoặc một nhóm phần là gì

+1

Tôi đã có cùng một vấn đề với system.ServiceModel và nó thực sự là một nhóm Section quá: http: //msdn.microsoft.com/en-us/library/system.servicemodel.configuration.servicemodelsectiongroup.aspx – odalet

+0

Phần ** runtime ** vui vẻ chấp nhận thuộc tính configSource nhưng nó *** không đọc tệp bên ngoài *** – Kiquenet

1

Điều này có thể bằng cách sử dụng thuộc tính configSource của phần gốc trong tệp cấu hình. Đây thực sự là một tính năng của hệ thống cấu hình .NET để nó có thể được thực hiện trong bất kỳ tập tin cấu hình web hoặc ứng dụng nào.

Dưới đây là một số blog post mô tả tính năng này khá tốt.

+0

Tôi chỉ thử rằng đối với thẻ system.webserver, nó bao gồm urlrewrite chủ yếu và bây giờ tôi nhận được "Thuộc tính không được nhận ra 'configSource'" –

+0

Vâng, đó là một vấn đề. System.webServer không phải là một vấn đề. Bạn sẽ có thể sử dụng configSource trên bất kỳ phần tử con nào của nó tuy nhiên – joshperry