.aspx vs .ashx主要差异

时间:2011-03-29 07:56:34

标签: asp.net service ashx

.aspx和.ashx页面之间有什么区别? 当我需要处理从代码调用并返回响应的请求时,我现在使用ashx,但我想要一个更技术性的答案。

4 个答案:

答案 0 :(得分:93)

Page是一个特殊的案例处理程序。

通用Web处理程序(*.ashx,基于扩展的处理程序)是所有没有UI且包含@WebHandler指令的Web处理程序的默认HTTP处理程序。

ASP.NET页面处理程序(*.aspx)是所有ASP.NET页面的默认HTTP处理程序。

在内置的HTTP处理程序中,还有Web服务处理程序(*.asmx)和跟踪处理程序(trace.axd

MSDN says

  

ASP.NET HTTP处理程序是进程   (经常被称为   “终点”)运行以响应a   对ASP.NET Web的请求   应用。最常见的处理程序   是一个ASP.NET页面处理程序   进程.aspx文件。当用户   请求.aspx文件,请求是   页面通过页面处理   处理程序。

下图说明了这一点: request pipe line

至于你的第二个问题:

  

ashx是否处理比aspx更多的连接?

不要这么认为(但肯定,至少不低于)。

答案 1 :(得分:75)

.aspx使用完整生命周期(InitLoadPreRender)并可以响应按钮点击等。
.ashx只有一个ProcessRequest方法。

答案 2 :(得分:24)

.aspx是一个渲染页面。如果您需要视图,请使用.aspx页面。 如果您只需要后端功能但将保留在同一视图中,请使用.ashx页面。

答案 3 :(得分:0)

对于以前在nodeJs中进行过编程的人们,尤其是使用expressJS的人们。我认为.ashx是调用next函数的中间件.aspx将是 controller ,它实际上会在res.redirectres.send或其他任何地方响应请求。