2008-09-01 10 views
17

Tôi có đoạn mã sau trong tệp web.config của trang IIS mặc định.Làm cách nào để ngăn chặn tệp web.config mặc định của trang web IIS đang được các thư mục ảo kế thừa?

<httpModules> 
    <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/> 
</httpModules> 

Sau đó, khi tôi thiết lập và duyệt đến một thư mục ảo tôi nhận được lỗi này

Không thể tải tập tin hoặc lắp ráp 'Charts' hoặc một trong các phụ thuộc của nó. Hệ thống không thể tìm thấy các tập tin được chỉ định.

Thư mục ảo kế thừa các mô-đun từ web.config mặc định.

Làm thế nào để bạn ngừng kế thừa này?

Trả lời

20

Tôi đã tìm thấy câu trả lời. Quấn phần HttpModule trong thẻ vị trí và đặt thuộc tính inheritInChildApplications thành false.

<location path="." inheritInChildApplications="false"> 
    <system.web> 
    <httpModules> 
     <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/> 
    </httpModules> 
    </system.web> 
</location> 

Bây giờ mọi thư mục ảo sẽ không kế thừa cài đặt trong phần vị trí này.

@GateKiller Đây không phải là một trang web khác, đó là một thư mục ảo để thừa kế không xảy ra.

@petrich Tôi đã nhấn và bỏ lỡ kết quả bằng cách sử dụng <remove />. Tôi phải nhớ để thêm nó vào mỗi thư mục ảo mà là một nỗi đau.

+0

Vâng, tôi thấy nó cũng là một nỗi đau. Cảm ơn bạn đã biết mẹo về inheritInChildApplications. – rpetrich

2

Thêm dòng sau vào file web.config thư mục ảo:

<httpModules> 
    <remove name="ChartStreamHandler"/> 
</httpModules> 
-2

According to Microsoft, các trang web khác không kế thừa các thiết lập từ Website mặc định. Bạn có nghĩa là bạn đang chỉnh sửa web.config mặc định nằm trong cùng thư mục với machine.config?

+0

Tôi nghĩ người hỏi đang nói về một thư mục ảo của trang web kế thừa từ nó. – Sam