【问题标题】:How is ASP.Net Routing accomplished given there is no obvious ISAPI mapping?如果没有明显的 ISAPI 映射,ASP.Net 路由是如何完成的?
【发布时间】:2013-06-30 13:27:43
【问题描述】:

所以我读到了:

如果文件扩展名尚未映射到 ASP.NET,则 ASP.NET 将 没有收到请求。了解这一点很重要 使用 ASP.NET 身份验证的应用程序。例如,因为 .htm 文件通常不会映射到 ASP.NET,ASP.NET 不会 对 .htm 的请求执行身份验证或授权检查 文件。因此,即使文件只包含静态内容,如果您 希望 ASP.NET 检查身份验证,使用文件创建文件 映射到 ASP.NET 的扩展名,例如 .aspx。

鉴于网络服务器中明显的 .htm ASP.net ISAPI 映射,我理解,但是路由表中的路由呢?我没有在网络服务器中映射这些,那么网络服务器如何知道将这些 URL 转发到 ASP.Net??

【问题讨论】:

    标签: asp.net url-routing


    【解决方案1】:

    所以这个问题至少有两个部分:

    第一个是如果您在IIS 中运行classic modeintegrated modeClassic mode 将使事情表现得像 IIS 6,其中一切都是 ISAPI filter,包括 ASP.NET 本身。 Integrated 模式利用了 IIS 7 从头开始​​重写的事实,现在改用模块。

    其次,为什么IIS 知道如何将URL 转发到ASP.NET 的简短答案是IIS 7+ 管道中的Routing ModuleISAPI filters 现在是 ISAPI Filters Module 的一部分。

    要从Routing/URL-Rewriting 的角度直观地描述 IIS 7+ 管道的工作原理,请阅读IIS URL Rewriting and ASP.NET Routing

    所以好消息是,如果您非常喜欢 ISAPI filter 方法,您可以使用 classic modeIIS

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2010-09-05
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多