.aspx和.ashx页面之间有什么区别? 当我需要处理从代码调用并返回响应的请求时,我现在使用ashx,但我想要一个更技术性的答案。
答案 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文件,请求是 页面通过页面处理 处理程序。
下图说明了这一点:
至于你的第二个问题:
ashx是否处理比aspx更多的连接?
不要这么认为(但肯定,至少不低于)。
答案 1 :(得分:75)
.aspx
使用完整生命周期(Init
,Load
,PreRender
)并可以响应按钮点击等。
.ashx
只有一个ProcessRequest
方法。
答案 2 :(得分:24)
.aspx是一个渲染页面。如果您需要视图,请使用.aspx页面。 如果您只需要后端功能但将保留在同一视图中,请使用.ashx页面。
答案 3 :(得分:0)
对于以前在nodeJs中进行过编程的人们,尤其是使用expressJS的人们。我认为.ashx
是调用next
函数的中间件。 .aspx
将是 controller ,它实际上会在res.redirect
,res.send
或其他任何地方响应请求。