程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> IIS URL重寫模塊和ASP.NET路由組件比較

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

編輯:關於ASP.NET

隨著針對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路由完全能夠擴展和定制。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved