我正在帮助一个客户端进行web应用程序升级,这包括一项需要将100的过期书签路由到新urls的任务。
在查看以下链接时,似乎很清楚,我应该更新路由表,而不是在web.config中重新写入规则来处理过期的书签:
When to use routes vs. rewrite rules?
http://www.iis.net/learn/extensions/url-rewrite-module/iis-url-rewriting-and-aspnet-routing
从好奇的角度来看,如果在web.config中重写100-250条规则,而不是直接处理映射的routes.maproute中的条目,那么这将是一个实质性的性能问题。对吗?
发布于 2016-05-02 19:09:09
无论哪种方式,在任何实际路由被击中之前,都需要执行所有规则。因此,在这两种方法中使用的性能都是相似的。
我怀疑IIS重写模块会稍微快一些,因为它发生在.NET甚至涉及到请求之前。然而,实际性能将取决于是否使用部分URL匹配(最快)与区分大小写的完整URL匹配(fast)与不区分大小写的完整URL匹配(不太快)和使用正则表达式(慢)。请注意,IIS重写中并非所有这些选项都可用。
此外,从维护的角度来看,使用IIS重写比使用过时URL的映射路由更有意义。然后,您可以将这些旧URL排除在应用程序的配置之外。
唯一的例外是,如果您想处理浏览器不尊重HTTP301的用户边缘情况,并且希望使用make a user-friendly redirect page来确保用户了解更新的URL并更新他们的书签。IIS重写模块只发送一个301响应,并假设客户端会尊重它(情况并不总是这样)。
https://stackoverflow.com/questions/36989297
复制相似问题