<modules 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
Да, будут проблемы с производительностью. Вместо этого вы должны использовать предварительное условие.
Капил Кхандельвал

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
Гевин

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.