如何确定正在执行哪些IIS模块来设置preCondition?

时间:2014-04-23 14:13:31

标签: asp.net iis asp.net-web-api web-config

我已将Web API添加到Web窗体应用程序中。

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0"/>
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""/>
  </modules>

我在Global.asax.vb中有一些代码:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires at the beginning of each request
End Sub

我不想为它创建一个单独的模块。当我向Web API发出请求时,此代码在IIS 7.5(Windows 7)中正常工作。但是,该事件不会在IIS 7.0(Windows Server 2008)中触发。

IIS 7模块: IIS 7 modules

我发现runAllManagedModulesForAllRequests =&#34; true&#34;:

一切都很好
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="UrlRoutingModule-4.0"/>
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""/>
  </modules>

但是,我希望通过为特定HTTP模块显式设置preCondition=""来摆脱此参数。

我不知道需要添加哪个模块。如何找到它?

1 个答案:

答案 0 :(得分:1)

通过安装KB980368修补程序解决了该问题。

我的服务器已安装所有实际的Windows更新。我没想到我需要修补程序。