【问题标题】:performance rewrite rules vs routes.maproute性能重写规则与 routes.maproute
【发布时间】:2016-05-02 18:37:54
【问题描述】:

我正在帮助客户升级 Web 应用程序,这包括需要将 100 个过时的书签路由到新网址的任务。

在查看以下链接时,我应该更新路由表而不是在 web.config 中添加重写规则来处理过时的书签,这似乎很明确:

When to use routes vs. rewrite rules?

http://www.iis.net/learn/extensions/url-rewrite-module/iis-url-rewriting-and-aspnet-routing

从好奇的角度来看,与直接处理映射的 routes.maproute 中的条目相反,在 web.config 中有 100 到 250 条重写规则会严重影响性能吗?对吧?

【问题讨论】:

    标签: asp.net-mvc iis asp.net-mvc-routing


    【解决方案1】:

    无论哪种方式,所有规则都需要在任何实际路线被命中之前执行。因此,用于这两种方法的性能量是相似的。

    我怀疑 IIS 重写模块会稍微快一些,因为它发生在 .NET 甚至参与请求之前。但是,实际性能将取决于您是使用部分 URL 匹配(最快)、区分大小写的完整 URL 匹配(快速)、不区分大小写的完整 URL 匹配(不太快)还是使用正则表达式(慢)。请注意,并非所有这些选项都在 IIS 重写中可用。

    此外,从维护的角度来看,使用 IIS 重写比为 过时 URL 映射路由更有意义。然后,您可以将这些旧 URL 保留在应用程序配置之外。

    唯一的例外是,如果您想要处理浏览器不遵守 HTTP 301 的用户边缘情况,并且您想要 make a user-friendly redirect page 以确保用户知道更新的 URL 并更新他们的书签。 IIS 重写模块只发送一个 301 响应并假定客户端会尊重它(并非总是如此)。

    【讨论】:

      猜你喜欢
      • 2012-04-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多