<mô-đun run ALLManagedModulesFor ALLRequests = ăn đúng sự thật /> Ý nghĩa


132

Tôi muốn biết ý nghĩa của

<modules runAllManagedModulesForAllRequests="true" />

Tôi đang sử dụng IIS 7.5 và tôi có một ứng dụng web đơn giản. Tôi có cần phải viết cái này trong tệp web.config không. Tôi cũng đã viết một vài trình xử lý http cho cuộc gọi jjery ajax. Tôi đang sử dụng xác thực mẫu và asp.net 4.0.

Làm thế nào tôi có thể xác định mô-đun nào tôi phải chạy và không phải là mô-đun nào?

Câu trả lời:


121

Mô-đun Điều kiện tiên quyết:

Công cụ lõi IIS sử dụng các điều kiện tiên quyết để xác định thời điểm kích hoạt một mô-đun cụ thể. Ví dụ, lý do hiệu suất có thể xác định rằng bạn chỉ muốn thực thi các mô-đun được quản lý cho các yêu cầu cũng đi đến một trình xử lý được quản lý. Điều kiện tiên quyết trong ví dụ sau ( precondition="managedHandler") chỉ cho phép mô-đun xác thực mẫu cho các yêu cầu cũng được xử lý bởi trình xử lý được quản lý, chẳng hạn như yêu cầu tệp .aspx hoặc .asmx:

<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />

Nếu bạn loại bỏ thuộc tính precondition="managedHandler" , Xác thực Mẫu cũng áp dụng cho nội dung không được phục vụ bởi các trình xử lý được quản lý, chẳng hạn như .html, .jpg, .doc, nhưng cũng áp dụng cho các tiện ích mở rộng cổ điển ASP (.asp) hoặc PHP (.php). Xem " Cách tận dụng lợi thế của đường ống tích hợp IIS " để biết ví dụ về việc cho phép các mô-đun ASP.NET chạy cho tất cả nội dung.

Bạn cũng có thể sử dụng phím tắt để cho phép tất cả các mô-đun được quản lý (ASP.NET) chạy cho tất cả các yêu cầu trong ứng dụng của bạn, bất kể "managedHandler điều kiện tiên quyết "".

Để cho phép tất cả các mô-đun được quản lý chạy cho tất cả các yêu cầu mà không cần định cấu hình từng mục nhập mô-đun để loại bỏ managedHandlerđiều kiện tiên quyết "", hãy sử dụng thuộc runAllManagedModulesForAllRequeststính trong <modules>phần:

<modules runAllManagedModulesForAllRequests="true" />    

Khi bạn sử dụng thuộc tính này, managedHandlerđiều kiện tiên quyết "" không có hiệu lực và tất cả các mô-đun được quản lý chạy cho tất cả các yêu cầu.

Sao chép từ Mô-đun IIS Tổng quan: Điều kiện tiên quyết


nó là tốt để chạy tất cả các mô hình cho tất cả các yêu cầu hoặc tôi sẽ được cụ thể hơn ở đó. Điều này có ảnh hưởng đến tốc độ của ứng dụng không?
शेखर

2
Có sẽ có vấn đề hiệu suất. Bạn nên sử dụng điều kiện tiên quyết thay thế.
Kapil Khandelwal

3
Sau đó, làm thế nào tôi nên quyết định tôi phải sử dụng mô-đun nào và không.
शेखर

6
Một câu hỏi tiếp theo. Tôi thấy nó cũng có thể kích hoạt các mô-đun riêng biệt, thay cho tất cả. Xem câu hỏi của tôi ( stackoverflow.com/questions/20998816/ - ), giải pháp đã có để thêm <modules runAllManagedModulesForAllRequests="true">. Nhưng tôi thấy bây giờ nó có thể tạo ra chi phí. Vì vậy, có một mô-đun cụ thể chịu trách nhiệm mà tôi có thể kích hoạt để có được dấu chấm "." trong MVC WebAPI Url, thay vì chỉ cho phép tất cả chúng với <modules runAllManagedModulesForAllRequests="true">? Có phải ví dụ như mô-đun "UrlAuthorization"?
Yves Schelpe

thêm phần thẻ mô-đun làm việc cho tôi. Tôi sử dụng MVC 5, .net framework 4.5.0, IIS 7 và windows server 2008
gavin

-8

thêm mã dưới đây vào web.config

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer> 

3
tại sao tôi muốn thêm?
शेखर
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.