2010-05-11 18 views
18

Tôi muốn tách phần system.serviceModel của web.config thành một tệp riêng biệt để tạo điều kiện cho một số cài đặt môi trường. Nỗ lực của tôi đã thành công. Khi tôi thử sử dụng phương pháp này. Mã WCF ném một ngoại lệ: "Các loại initializer cho 'System.ServiceModel.ClientBase 1 ném một ngoại lệ bất cứ ai có thể cho tôi biết những gì tôi đang làm saiTôi có thể tách system.serviceModel thành một tệp .config riêng biệt không?

Web.config:.?

<configuration> 
    <system.serviceModel configSource="MyWCF.config" /> 
    .... 

MyWCF. cấu hình:

<system.serviceModel> 
    <extensions> 
     ... 
    </extensions> 

    <bindings> 
     ... 
    </bindings> 

    <behaviors> 
     ... 
    </behaviors> 

    <client> 
     ... 
    </client> 

    </system.serviceModel> 

Trả lời

32

Bạn không thể "ra bên ngoài" nhóm <system.serviceModel> phần - vì nó là một phần cấu hình nhóm - nhưng bạn chắc chắn có thể ra bên ngoài mỗi người trong số các bit bên trong nó:

<system.serviceModel> 
    <behaviors configSource="behaviors.config" /> 
    <bindings configSource="bindings.config" /> 
    <extensions configSource="extensions.config" /> 
    <client configSource="client.config" /> 
    <services configSource="services.config" /> 
</system.serviceModel> 

Trong hệ thống cấu hình NET, bất kỳ phần cấu hình có thể được bên ngoài - mỗi phần cấu hình có một thuộc tính configSource (mặc dù Visual Studio đôi khi phàn nàn và tuyên bố ngược lại .....) - nhưng không cấu hình nhóm phần.

Thật không may, hai điều này rất khó phân biệt - bạn cần tham khảo thư viện hoặc tài liệu MSDN để tìm hiểu.

Bạn cũng nên xem loạt bài gồm ba phần của Jon Rista trên hệ thống cấu hình .NET trên CodeProject.

Rất khuyến khích, cũng bằng văn bản và cực kỳ hữu ích!

+1

Mẹo hay ... phần này có thể rất bận. – JoeGeeky

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