<modules runAllManagedModulesForAllRequests =“true”/>含义

我想知道是什么意思

<modules runAllManagedModulesForAllRequests="true" /> 

我正在使用IIS 7.5,我有一个简单的Web应用程序。 我需要写在我的web.config文件中。 我也写了jQuery的Ajax调用几个http处理程序。 我正在使用表单身份validation和asp.net 4.0。

我怎样才能确定哪个模块我必须运行,哪些不是?

模块前提条件:

IIS核心引擎使用先决条件来确定何时启用特定的模块。 性能的原因,例如,可能会确定您只想执行托pipe模块的请求也转到托pipe处理程序。 以下示例( precondition="managedHandler" )中的precondition="managedHandler"仅对表单身份validation模块启用了也由托pipe处理程序处理的请求,例如对.aspx或.asmx文件的请求:

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

如果您删除了属性precondition="managedHandler" ,则表单身份validation也适用于未由托pipe处理程序(例如.html,.jpg,.doc)提供的内容,也适用于传统ASP(.asp)或PHP(.php )扩展。 有关为所有内容启用ASP.NET模块的示例,请参阅“ 如何利用IIS集成pipe道 ”。

无论“ managedHandler ”的先决条件如何,您还可以使用快捷方式为所有请求运行所有托pipe(ASP.NET)模块。

要使所有托pipe模块都可以针对所有请求运行,而无需configuration每个模块条目以删除“ managedHandler ”前提条件,请使用<modules>部分中的runAllManagedModulesForAllRequests属性:

 <modules runAllManagedModulesForAllRequests="true" /> 

当您使用此属性时,“ managedHandler ”前置条件不起作用,所有托pipe模块都将针对所有请求运行。

从IIS模块复制概述:先决条件