.aspx vs .ashx主要差异

Arr*_*abi 109 asp.net service ashx

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

Ale*_*lex 96

Page 是一个特例处理程序.

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

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

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

MSDN :

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

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

至于你的第二个问题:

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

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


Han*_*ing 80

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

  • Web服务器没有义务为每个新请求创建新的对象实例.如果Handler上的IsReusable = true,则服务器可以重用现有的处理程序对象来处理下一个请求 (10认同)
  • 并且是可以使用的 (4认同)
  • 所以它创建了一个处理程序的实例并保存在内存中以重用它。它永远不会把它还给 GC。 (2认同)

Bab*_*fas 26

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