2008-12-10 46 views
178

Mỗi lần tôi phải thêm một trình xử lý hoặc mô-đun cho ASP.NET w/IIS7, các hướng dẫn luôn cho tôi biết để đặt nó vào hai nơi, system.web và system.webserver.Sự khác biệt giữa <system.web> và <system.webServer> là gì?

<system.web> 
    <httpHandlers> 
    </httpHandlers> 
    <httpModules> 
    </httpModules> 
</system.web> 

Và đây:

<system.webServer> 
    <modules> 
    </modules> 
    <handlers> 
    </handlers> 
</system.webServer> 

sự khác biệt giữa hai là gì?
Đã thêm: Nếu tôi không thêm nó vào system.web của mình, trình gỡ lỗi VS 2008 của tôi cũng không hoạt động chính xác.

+2

tham chiếu hiện tại tốt hơn cho điều này là: http://msdn.microsoft.com/en-us/library/46c5ddfy.aspx – Shannon

Trả lời

145

Phần system.web dành cho cấu hình IIS 6.0, trong khi phiên bản system.webserver được sử dụng để cấu hình IIS 7.0. IIS 7.0 bao gồm một đường dẫn ASP.NET mới và một số khác biệt về cấu hình, do đó các phần cấu hình phụ.

Tuy nhiên ...

Nếu bạn đang chạy IIS 7.0 ở chế độ tích hợp, bạn không cần phải thêm trình xử lý cho cả hai phần. Thêm nó vào system.web cũng là một dự phòng cho IIS 7.0 hoạt động ở chế độ cổ điển, trừ khi tôi bị nhầm lẫn. Tôi đã không thực hiện thử nghiệm rộng rãi về điều này.

Xem http://msdn.microsoft.com/en-us/library/bb763179.aspx để biết thêm thông tin.

+3

Điều gì về attributs như được đặt trong system.web nhưng vẫn tạo sự khác biệt trên Chế độ tích hợp IIS 7? – sclarson

+35

Phần system.web không được thay thế bởi phần system.webserver, chỉ cần mở rộng. – Chris

+0

Trên IIS 8.5 Tôi đã tìm thấy cài đặt 'httpCookies' không có sẵn trong system.webServer nhưng hoạt động nếu tôi tạo system.web và đặt nó vào đó. – Eborbob

35

Chế độ cũ dành cho Chế độ cổ điển.

Chế độ thứ hai dành cho Chế độ đường ống tích hợp (có sẵn trong IIS7 +).

+0

Với kinh nghiệm của tôi, đây có phải là câu trả lời tốt hơn về chiều dài, sự rõ ràng và thực tế. Ngoài chế độ cổ điển ở trên, hãy thêm IIS Express và các máy chủ khác không phải là IIS 7. –

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