【发布时间】:2011-07-25 01:53:32
【问题描述】:
.aspx 和 .ashx 页面有什么区别? 当我需要处理从代码调用并返回响应的请求时,我现在使用 ashx,但我想要一个更技术性的答案。
【问题讨论】:
.aspx 和 .ashx 页面有什么区别? 当我需要处理从代码调用并返回响应的请求时,我现在使用 ashx,但我想要一个更技术性的答案。
【问题讨论】:
Page 是一个特殊情况处理程序。
通用 Web 处理程序(*.ashx,基于扩展的处理器)是所有没有 UI 且包含 @WebHandler 指令的 Web 处理程序的默认 HTTP 处理程序。
ASP.NET 页面处理程序 (*.aspx) 是所有 ASP.NET 页面的默认 HTTP 处理程序。
在内置的 HTTP 处理程序中,还有 Web 服务处理程序 (*.asmx) 和跟踪处理程序 (trace.axd)
MSDNsays:
ASP.NET HTTP 处理程序是进程 (通常称为 “端点”)响应于 向 ASP.NET Web 发出的请求 应用。最常见的处理程序 是一个 ASP.NET 页面处理程序,它 处理 .aspx 文件。当用户 请求一个 .aspx 文件,请求是 由页面通过页面处理 处理程序。
下图说明了这一点:
关于你的第二个问题:
ashx 处理的连接比 aspx 多吗?
不这么认为(但可以肯定,至少不少于)。
【讨论】:
HttpHandler 只是在Page 部分之前执行的请求的部分。
.aspx 使用完整的生命周期(Init、Load、PreRender)并且可以响应按钮点击等。.ashx 只有一个 ProcessRequest 方法。
【讨论】:
.aspx 是一个呈现的页面。如果需要视图,请使用 .aspx 页面。 如果您只需要后端功能,但要保持在同一个视图上,请使用 .ashx 页面。
【讨论】:
对于以前在 nodeJs 中编程过的人,尤其是使用 expressJS 的人。我认为.ashx 是一个调用next 函数的中间件。而.aspx 将是控制器,它实际上在res.redirect、res.send 或其他任何地方响应请求。
【讨论】: