Linux中怎么用cat命令创建文件并写入数据
248
2022-11-28
URL重写及ASP.NET路由、Http处理模块、程序等
这段时间在学习ASP.NET路由、HTTP处理等内容,了解了一些,但又未完全弄懂,似是而非,不管如何,作一总结,供日后借鉴和修改。
一、IIS6和IIS7经典模式和集成模式
在IIS6及IIS7经典模式下,对ASP.NET的处理部分是独立出来的,靠aspnet_isapi.dll来处理完成。一个请求从浏览器发到IIS,IIS先判断请求的类型,如果是ASP.NET部分,就转发给aspnet_isapi.dll来处理,处理完了再返回给IIS,再由IIS返回到浏览器。
而在IIS7集成模式中,不管什么资源,什么类型,都在同一个管道中完成。
参考文章:
深入解读IIS 7中应用程序池的管道模式 Handler 来实现什么路由:
==》
IIS7经典模式下的web.config
IIS7集成模式下
参考文章:
HTTP 处理程序和 HTTP 模块概述
FORM程序也完全可以采用。问题是,IIS6和IIS7经典模式下,因为上述原因,路径中一定要加后缀名,比如 "pid.ashx/{id}", "~/handler.ashx?pid=");
我曾经以为可以将这个{id},附在目标地址后面,写成这个样子,hanler.ashx?pid=$1,结果没门。
参数是怎么提取的呢?是在目标页面里,用 Page.RouteData.Values["..."]的方式提取。并且这个页面要是aspx页面,ashx还不行。
ASP.NET 路由
http://msdn.microsoft.com/zh-cn/library/cc668201(v=vs.100).aspx
三、URL重写过时了吗
又有路由,又有自定义的HTTP处理模块、程序,还要URL重写干嘛?微软有一个给IIS7的重写模块外,其他都是杂牌军,总有点怪怪的感觉。
但是,对于IIS6和IIS7经典模式来讲,URL重写可以处理静态资源类地址,证明在IIS处理过程中,先于ASP.NET一步,我相信它的性能要比路由和自定义HTTP处理要高。并且各种正则表达式,复杂是复杂了一点,但毕竟能实现得相当好。
这些不同WEB服务器下的特点,是我们想实现优美、友好的URL所要考虑的。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~