| 導購 | 订阅 | 在线投稿
分享
 
 
 

IIS URL重寫模塊和ASP.NET路由組件比較

來源:互聯網網民  2008-11-08 09:28:48  評論

隨著針對IIS 7.0的URL重寫模塊的發布,以及在.NET框架3.5 SP1中包含了ASP.NET路由(Routing),許多ASP.NET開發人員開始質問這兩種特性彼此間的關系,以及應該何時使用。

Ruslan Yakushev在LearnIIS.NET上發表了一篇很有指導意義的文章。

二者本質的區別在于:IIS URL重寫的處理方式比ASP.NET路由在層次上更低,對于客戶端是不可見的。

Ruslan給出了IIS 7 URL重寫過程的可視化工作流。你可以看到URL重寫模塊是在請求被傳遞到請求處理器(Handler),例如ASP.NET管理的ASPX處理器之前被激活的。IIS URL重寫並不知道具體的請求處理器。

他同時還給出了ASP.NET路由過程的可視化工作流。可以看到ASP.NET路由就是一個請求分發器,它必須明確地獲知一個特定的請求究竟應途經哪個處理器。

來自Ruslan的描述如下:

URL重寫通常被用于在Web服務器處理請求之前操作URL路徑。URL重寫模塊並不知道處理器實際處理URL重寫的任何內容。此外,實際的請求處理器並不知道URL是否已被重寫。

ASP.NET路由通常根據請求的URL路徑將請求分發到處理器。與URL重寫相反,路由組件知道處理器,並能夠選擇可以爲請求的URL生成反應的處理器。你可以將ASP.NET路由看作是一個高級的處理器映射機制。

IIS URL重寫模塊能夠用于任何類型的Web應用程序,包括ASP.NET,PHP,ASP和靜態文件。ASP.NET路由只能用于基于.NET框架的Web應用程序。

在用于應用程序池方面,不管是集成的還是經典的IIS管道模式,IIS URL重寫模塊的工作方式都是相同的。而ASP.NET路由則會優先選擇使用集成管道模式。ASP.NET路由也可以工作于經典模式,但是在這種情況下,應用程序的URL必須包含文件擴展名,或者應用程序必須在IIS中使用「*」配置處理器。

URL重寫模塊可以根據域名、HTTP標頭和服務器變量進行重寫判斷。默認情況下,ASP.NET路由只能使用URL路徑以及標頭的形式。

除了重寫功能,URL重寫模塊能夠執行HTTP重定向,確定自定義狀態碼以及取消請求。ASP.NET路由則不具有這些功能。

URL重寫模塊在當前版本中是不能擴展的。ASP.NET路由完全能夠擴展和定制。

查看英文原文:IIS URL Rewriting vs ASP.NET Routing

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
隨著針對IIS 7.0的URL重寫模塊的發布,以及在.NET框架3.5 SP1中包含了ASP.NET路由(Routing),許多ASP.NET開發人員開始質問這兩種特性彼此間的關系,以及應該何時使用。 Ruslan Yakushev在LearnIIS.NET上發表了一篇很有指導意義的文章。 二者本質的區別在于:IIS URL重寫的處理方式比ASP.NET路由在層次上更低,對于客戶端是不可見的。 Ruslan給出了IIS 7 URL重寫過程的可視化工作流。你可以看到URL重寫模塊是在請求被傳遞到請求處理器(Handler),例如ASP.NET管理的ASPX處理器之前被激活的。IIS URL重寫並不知道具體的請求處理器。 他同時還給出了ASP.NET路由過程的可視化工作流。可以看到ASP.NET路由就是一個請求分發器,它必須明確地獲知一個特定的請求究竟應途經哪個處理器。 來自Ruslan的描述如下: URL重寫通常被用于在Web服務器處理請求之前操作URL路徑。URL重寫模塊並不知道處理器實際處理URL重寫的任何內容。此外,實際的請求處理器並不知道URL是否已被重寫。 ASP.NET路由通常根據請求的URL路徑將請求分發到處理器。與URL重寫相反,路由組件知道處理器,並能夠選擇可以爲請求的URL生成反應的處理器。你可以將ASP.NET路由看作是一個高級的處理器映射機制。 IIS URL重寫模塊能夠用于任何類型的Web應用程序,包括ASP.NET,PHP,ASP和靜態文件。ASP.NET路由只能用于基于.NET框架的Web應用程序。 在用于應用程序池方面,不管是集成的還是經典的IIS管道模式,IIS URL重寫模塊的工作方式都是相同的。而ASP.NET路由則會優先選擇使用集成管道模式。ASP.NET路由也可以工作于經典模式,但是在這種情況下,應用程序的URL必須包含文件擴展名,或者應用程序必須在IIS中使用「*」配置處理器。 URL重寫模塊可以根據域名、HTTP標頭和服務器變量進行重寫判斷。默認情況下,ASP.NET路由只能使用URL路徑以及標頭的形式。 除了重寫功能,URL重寫模塊能夠執行HTTP重定向,確定自定義狀態碼以及取消請求。ASP.NET路由則不具有這些功能。 URL重寫模塊在當前版本中是不能擴展的。ASP.NET路由完全能夠擴展和定制。 查看英文原文:[url=http://www.infoq.com/news/2008/10/urlrewriting]IIS URL Rewriting vs ASP.NET Routing[/url]
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有