<модулі runAllManagedModulesForAllRequests = "true" /> Значення


133

Я хотів дізнатися, в чому сенс

<modules runAllManagedModulesForAllRequests="true" />

Я використовую IIS 7.5 і у мене є простий веб-додаток. Чи потрібно мені це записати у свій файл web.config. Я також написав кілька http-обробників для виклику jquery ajax. Я використовую автентифікацію форми та asp.net 4.0.

Як я можу визначити, який модуль потрібно запустити, а який не бути?

Відповіді:


122

Передумови модулів:

Основний двигун IIS використовує передумови, щоб визначити, коли ввімкнути певний модуль. Наприклад, причини продуктивності можуть визначити, що ви хочете виконувати лише керовані модулі для запитів, які також переходять до керованого обробника. Попередня умова в наступному прикладі ( precondition="managedHandler") дозволяє лише модуль аутентифікації форм для запитів, які також обробляються керованим обробником, наприклад запитами файлів .aspx або .asmx:

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

Якщо ви видалите атрибут precondition="managedHandler", аутентифікація форм також застосовується до вмісту, який не обслуговується керованими обробниками, такими як .html, .jpg, .doc, а також для класичних розширень ASP (.asp) або PHP (.php). Див. " Як скористатися перевагою інтегрованого трубопроводу IIS " для прикладу включення модулів ASP.NET для запуску всього вмісту.

Ви також можете скористатися ярликом, щоб увімкнути всі керовані (ASP.NET) модулі для запуску всіх запитів у вашій програмі, незалежно від managedHandlerпередумови.

Щоб увімкнути всі керовані модулі для запуску для всіх запитів без налаштування кожного запису модуля, щоб видалити managedHandlerпопередню умову, використовуйте runAllManagedModulesForAllRequestsвластивість у <modules>розділі:

<modules runAllManagedModulesForAllRequests="true" />    

При використанні цього властивості managedHandlerпопередня умова не має ефекту, і всі керовані модулі працюють для всіх запитів.

Скопійовано з огляду модулів IIS: передумови


чи добре запустити всі моделі для всіх запитів, або я буду більш конкретним там. Чи впливає це на швидкість застосування?
вересня

2
Так, не буде проблеми з продуктивністю. Натомість слід використовувати попередню умову.
Kapil Khandelwal

3
то як я повинен вирішити, який модуль я повинен використовувати, а який - ні.
शेखर

6
Подальше запитання. Я бачу, що можливо включити окремі модулі і замість усіх. Дивіться моє запитання ( stackoverflow.com/questions/20998816/… ), рішення, яке було додати <modules runAllManagedModulesForAllRequests="true">. Але я бачу, що це може створити накладні витрати. Отже, чи є конкретний модуль, відповідальний за те, що я можу дозволити отримати крапку. " в MVC WebAPI Url, замість того, щоб просто включити їх <modules runAllManagedModulesForAllRequests="true">? Це, наприклад, модуль "UrlAuthorization"?
Ів Шельпе

додавання розділу тегів модулів працює для мене. Я використовую MVC 5, .net Framework 4.5.0, IIS 7 і Windows Server 2008
gavin

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.