< module runAllManagedModulesForAllRequest = “ true”/> 含义

我想知道

<modules runAllManagedModulesForAllRequests="true" />

我使用 IIS 7.5,我有一个简单的网络应用程序。我需要把它写到 web.config 文件中吗。 我还为 jquery ajax 调用编写了一些 http 处理程序。 我使用的是表单身份验证和 asp.net 4.0。

如何确定需要运行哪个模块,哪个模块不需要运行?

175607 次浏览

预备条件:

IIS 核心引擎使用先决条件来确定何时启用特定模块。例如,性能原因可能决定您只希望对也发送到托管处理程序的请求执行托管模块。下面示例中的先决条件(precondition="managedHandler")只允许窗体身份验证模块处理也由托管处理程序处理的请求,如对。Aspx 或。Asmx 档案:

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

如果删除属性 precondition="managedHandler",则窗体身份验证也应用于托管处理程序不提供的内容,如。超文本标记语言。JPG.文档,但也为经典的 ASP (。Asp)或 PHP (。Php)扩展。有关启用 ASP.NET 模块以运行所有内容的示例,请参见“ 如何利用 IIS 集成管道”。

您还可以使用快捷方式启用所有托管(ASP.NET)模块来运行应用程序中的所有请求,而不管“ managedHandler”的先决条件是什么。

要使所有托管模块都能够运行所有请求,而无需将每个模块条目配置为删除“ managedHandler”先决条件,请使用 <modules>部分中的 runAllManagedModulesForAllRequests属性:

<modules runAllManagedModulesForAllRequests="true" />

使用此属性时,“ managedHandler”前提条件没有效果,所有托管模块将针对所有请求运行。

IIS 模块概述: 前提条件复制