当前位置:  开发笔记 > 后端 > 正文

IIS URL重写与URL路由

如何解决《IISURL重写与URL路由》经验,为你挑选了3个好方法。

我打算为Web窗体应用程序使用URL路由.但是,在阅读了一些帖子之后,我不确定这是否是一种简单的方法.

为网络表单使用URL重写模块更好吗?但是,它仅适用于IIS7.最初,有一些嗡嗡声,URL路由完全与Asp.Net MVC分离,它可以用于Web表单.

很想听到任何建议..



1> splattne..:

这是我发现的关于此主题的最佳文章:Ruslan Yakushev的IIS URL重写和ASP.NET路由.

IIS URL重写

当客户端向Web服务器请求特定URL时,URL重写组件会分析请求的URL并将其更改为同一服务器上的其他其他URL.URL重写组件在请求处理管道中很早就运行,因此能够在Web服务器决定使用哪个处理程序来处理请求之前修改所请求的URL.

IIS URL重写

ASP.NET路由

ASP.NET路由实现为托管代码模块,该模块在Resolve Cache阶段(PostResolveRequestCache事件)和Map Handler阶段(PostMapRequestHandler)插入IIS请求处理管道.ASP.NET路由配置为针对Web应用程序发出的所有请求运行.

IIS URL路由

URL重写和ASP.NET路由之间的差异:

    URL重写用于在Web服务器处理请求之前操作URL路径.URL重写模块不知道哪个处理程序最终将处理重写的URL.此外,实际的请求处理程序可能不知道URL已被重写.

    ASP.NET路由用于根据请求的URL路径将请求分派给处理程序.与URL重写相反,路由组件知道处理程序并选择应该为请求的URL生成响应的处理程序.您可以将ASP.NET路由视为高级处理程序映射机制.

除了这些概念差异之外,IIS URL重写和ASP.NET路由之间存在一些功能差异:

    IIS URL重写模块可以与任何类型的Web应用程序一起使用,其中包括ASP.NET,PHP,ASP和静态文件.ASP.NET路由只能用于基于.NET Framework的Web应用程序.

    无论是否为应用程序池使用集成或经典IIS管道模式,IIS URL重写模块的工作方式都相同.对于ASP.NET路由,最好使用集成管道模式.ASP.NET路由可以在经典模式下工作,但在这种情况下,应用程序URL必须包含文件扩展名,或者应用程序必须配置为在IIS中使用"*"处理程序映射.

    URL重写模块可以根据域名,HTTP头和服务器变量做出重写决策.默认情况下,ASP.NET路由仅适用于URL路径和HTTP-Method标头.

    除了重写之外,URL重写模块还可以执行HTTP重定向,发出自定义状态代码和中止请求.ASP.NET路由不执行这些任务.

    URL重写模块在其当前版本中不可扩展.ASP.NET路由是完全可扩展和可自定义的.



2> Haacked..:

这里有一篇很棒的帖子,介绍了IIS团队成员之间的差异.

我要建议的一个警告是,对于WebForms,在使用Routing时需要小心.我已经编写了一个示例实现,说明如何使用WebForms进行路由以解决这些问题,并希望有助于回答您的问题.


菲尔,我认为你得到了"名人"的投票.

3> DevelopingCh..:

您是否希望格式化网址成为生成页面的工厂?

或者你想让.aspx消失?

重写,是为了让.aspx消失,或者只是为了整理网址.

路由,用于查看请求并确定哪个对象应该处理它.他们听起来很相似,phil haack有一些关于这个主题的好文章.

在iis6中,isapiRewrite,非常好

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有