2011-01-05 175 views
3

我明白,http處理程序處理請求,但這只是理論,因爲我不明白它。許多第三方控件需要在web.config中添加一個http處理程序。有時我們需要使用實現IHttpHandler接口的ProcessRequest方法來創建我們自己的類,但我很難理解Http處理程序適合的位置以及它們的角色是什麼?爲什麼我們需要Http處理程序?

+1

每個請求都需要由某段代碼處理,無論是.aspx,.ashx,.asmx還是其他。這是通過HttpHandlers完成的,asp.net附帶了一堆預構建處理程序,您可以自由添加更多選擇。 – 2011-01-05 11:36:15

回答

4

HTTP處理程序是ASP.NET的重要組成部分 - 它們是什麼處理請求和生成響應。在webforms中,它是典型的(對於頁面(aspx,或者可能是ashx)來解釋請求,但這是本身一種處理程序類型(只在主web.config文件中默認映射)。

在添加處理程序的配置文件的情況下,這通常是因爲應用程序是爲網址動態生成內容神奇映射到現有的文件,或添加一些邏輯爲文件存在但超出了常規的asp.net。

如果您正在使用ASP.NET MVC,你往往需要這少得多(如果有的話),因爲它是請求規範直接映射到源代碼樹的ASPX/ASHX。

回想ASP.NET webforms,我使用處理程序的主要時間是在執行諸如二進制下載,文件導出等操作時 - 我不希望它通過webforms aspx管道運行。

0

就我個人而言,我使用它們來處理我所有的AJAX請求。因爲我通常會輸出XML/JSON,所以我使用一個處理程序,因此我不必擔心實現System.Web.UI.Page會帶來的所有開銷。

它們還允許您攔截HTTP管道,這有時可能會有用。 我認爲這一切都取決於你想要達到的目標。

肖恩

+0

HttpHandlers不會攔截管道,因此您可以使用HttpModules。 – 2011-01-05 11:34:25

相關問題