145

我想知道是什么意思

<modules runAllManagedModulesForAllRequests="true" />

我正在使用 IIS 7.5,并且我有一个简单的 Web 应用程序。我需要在我的 web.config 文件中写这个吗?我还为 jquery ajax 调用编写了一些 http 处理程序。我正在使用表单身份验证和 asp.net 4.0。

我如何确定我必须运行哪个模块,哪个不应该运行?

4

1 回答 1

128

模块前提条件:

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

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

如果您删除该属性precondition="managedHandler",表单身份验证也适用于不由托管处理程序提供的内容,例如 .html、.jpg、.doc,但也适用于经典的 ASP (.asp) 或 PHP (.php) 扩展。有关启用 ASP.NET 模块以针对所有内容运行的示例,请参阅“如何利用 IIS 集成管道”。

您还可以使用快捷方式来启用所有托管 (ASP.NET) 模块以针对应用程序中的所有请求运行,而不管“ managedHandler”前置条件如何。

要使所有托管模块能够针对所有请求运行,而无需配置每个模块条目以删除“ managedHandler”前置条件,请使用以下部分runAllManagedModulesForAllRequests中的属性<modules>

<modules runAllManagedModulesForAllRequests="true" />    

使用此属性时," managedHandler" 前提条件无效,所有托管模块都会针对所有请求运行。

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

于 2012-06-15T10:31:56.660 回答