ASP.Net URL 路由仅在 `runAllManagedModulesForAllRequests` 为真时有效

标签 asp.net web-config url-routing

我已经在 IIS 中设置了 URL 路由。当我有 runAllManagedModulesForAllRequests设置为 true,URL 路由有效。

使用以下 web.config(和 runAllManagedModuesForAllRequests 设置为 false)我得到 404:

  <system.web>
    <compilation defaultLanguage="c#" debug="true" targetFramework="4.5">
      <assemblies>
        <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="UrlRoutingHandler" />
      <add name="UrlRoutingHandler"
           preCondition="integratedMode"
           verb="*"
           path="UrlRouting.axd"
           type="System.Web.HttpForbiddenHandler, 
                     System.Web, Version=2.0.0.0, 
                     Culture=neutral, 
                     PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
    <modules>
      <remove name="UrlRoutingModule" />
      <add name="UrlRoutingModule"
            type="System.Web.Routing.UrlRoutingModule, 
                System.Web.Routing, 
                Version=3.5.0.0, 
                Culture=neutral, 
                PublicKeyToken=31BF3856AD364E35"/>
    </modules>
  </system.webServer>

如何仅为某些请求设置 URL 路由?

我已经在 IIS 7.5 和 IIS 8 中测试了此配置。这是在 Web 表单应用程序中。所有 URL 都演示了 404 行为。

最佳答案

“runAllManagedModulesForAllRequests”为真,意味着 asp.net 处理程序(当然,当您处于集成模式时)将为所有扩展(包括无扩展)触发,如果您没有 aspx 并且它设置为 false,您的模块可以不要处理它。

您无法为要实现的目标设置扩展子集,但您可以在模块中自行过滤以仅处理某些扩展。

关于ASP.Net URL 路由仅在 `runAllManagedModulesForAllRequests` 为真时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17482442/

相关文章:

asp.net - 如何在 ASP.NET WebForm 中使用 Ninject 注入(inject)依赖项?

jquery - 带有 sql server 数据的 Highcharts

python - Flask URL 路由 : Route All other URLs to some function

javascript - 使按钮显示为链接

asp.net - Isapi 过滤器在 IIS 7 上不起作用(在 IIS 6 上起作用)

entity-framework - 如何将 ASP.NET Entity Framework ConnectionStrings 移至 web.config 的 appSettings 部分

c# - 尝试替换 connectionStrings 元素以在 Visual Studio Team Services 中进行持续部署

asp.net - 在 Web.config 中配置 ASP.NET 路由

zend-framework - Zend 框架、URL View 助手和布局