2011-03-29 50 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