.aspx和.ashx主要区别


115

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

Answers:


101

Page 是一个特殊情况处理程序。

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

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

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

MSDN

ASP.NET HTTP处理程序是响应对ASP.NET Web应用程序的请求而运行的过程(通常称为“端点”)。最常见的处理程序是处理.aspx文件的ASP.NET页处理程序。当用户请求.aspx文件时,页面将通过页面处理程序处理请求。

下图说明了这一点: 要求管道

关于第二个问题:

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

不要这样认为(但可以肯定的是,至少不能少于)。


谢谢,但是您没有提到ashx处理程序,它的Request Pipe Line呢?
2011年

1
@Arrabi HttpHandler只是请求的一部分,正在该部分之前执行Page
亚历克斯(Alex),

82

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


在这种情况下,“可重用”是什么意思?
redcalx

11
Web服务器没有义务为每个新请求创建一个新的对象实例。如果处理程序上的IsReusable = true,则服务器可以重用现有的处理程序对象来处理下一个请求
quetzalcoatl

2
因此,它创建了处理程序的实例,并保留在内存中以重用它。它永远不会把它还给GC。
uzay95

26

.aspx是呈现的页面。如果需要视图,请使用.aspx页。如果您需要的只是后端功能,但仍停留在同一视图上,请使用.ashx页面。


我知道,我想用数字来提供更多的技术答案,ashx是否比aspx处理更多的连接?
阿拉比2011年

1

对于以前已经在nodeJs中编程的人,尤其是使用expressJS的人。我认为是调用该函数.ashx中间件next。而.aspx将是控制实际响应请求或者周围res.redirectres.send或什么的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.