2011-03-29 75 views
97

.aspx和.ashx頁面之間有什麼區別? 當我需要處理從代碼調用並返回響應的請求時,我現在使用ashx,但我希望得到更多技術性的答案。.aspx與.ashx主要區別

+0

有沒有人更好地使用HTML的iFrame?我知道的 – Seva 2014-10-06 02:10:47

回答

88

Page是一個特例處理程序。

通用Web處理程序(*.ashx,基於擴展的處理器)是所有缺少UI並且包含@WebHandler指令的Web處理程序的默認HTTP處理程序。

ASP.NET頁面處理程序(*.aspx)是所有ASP.NET頁面的默認HTTP處理程序。

其中內置的HTTP處理程序也有Web服務處理器(*.asmx)和跟蹤處理程序(trace.axd

MSDN says

ASP.NET HTTP處理程序是過程 (通常被稱爲 「端點」),該響應運行於對ASP.NET Web 應用程序的請求 。最常用的處理程序 是 處理.aspx文件的ASP.NET頁面處理程序。當用戶 請求一個.aspx文件時,請求是 通過頁面處理的頁面通過 處理程序。

下圖說明了這一點: request pipe line

關於你的第二個問題:

是否ashx的處理比ASPX更多的連接?

不要這樣認爲(但肯定,至少不能小於)。

+0

謝謝,但您沒有提及ashx處理程序,請求管道線呢? – Arrabi 2011-03-29 10:46:41

+1

@Arrabi,'HttpHandler'只是在'Page'部分之前執行的請求的一部分。 – Alex 2011-03-29 11:03:55

22

.aspx是一個渲染頁面。如果您需要視圖,請使用.aspx頁面。 如果您只需要後端功能,但將保留在同一視圖中,請使用.ashx頁面。

+0

,我想用數字想要更多的技術答案,ashx處理更多的連接而不是aspx? – Arrabi 2011-03-29 08:26:34

70

.aspx使用完整生命週期(InitLoadPreRender),並且可以向按鈕點擊等
一種.ashx具有隻是單一ProcessRequest方法作出響應。

+4

和isReuseable – 2012-10-14 14:27:11

+0

在這種情況下,'可重用'是什麼意思? – redcalx 2013-02-06 11:16:34

+10

Web服務器沒有義務爲每個新請求創建一個新的對象實例。如果處理程序的IsReusable = true,那麼服務器可以重用現有的處理程序對象來處理下一個請求 – quetzalcoatl 2013-02-14 13:04:32