<modules runallmanagedmodulesforallrequests =“true”>含义</modules>

时间:2012-06-15 10:22:34

标签: asp.net web-config

我想知道

的含义是什么
<modules runAllManagedModulesForAllRequests="true" />

我使用的是IIS 7.5,我有一个简单的Web应用程序。我是否需要在web.config文件中编写此代码。 我还为jquery ajax调用写了几个http处理程序。 我正在使用表单身份验证和asp.net 4.0。

如何确定我必须运行哪个模块以及哪个模块不运行?

2 个答案:

答案 0 :(得分:116)

模块前提条件:

  

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模块以针对所有内容运行的示例,请参阅“How to Take Advantage of IIS Integrated Pipeline”。

     

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

     

要为所有请求启用所有托管模块而不配置每个模块条目以删除“managedHandler”前置条件,请使用runAllManagedModulesForAllRequests部分中的<modules>属性:

<modules runAllManagedModulesForAllRequests="true" />    
     

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

IIS Modules Overview: Preconditions

复制

答案 1 :(得分:-3)

在web.config中添加以下代码

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>