【问题标题】:.aspx vs .ashx MAIN difference.aspx 与 .ashx 的主要区别
【发布时间】:2011-07-25 01:53:32
【问题描述】:

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

【问题讨论】:

    标签: asp.net service ashx


    【解决方案1】:

    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 多吗?

    不这么认为(但可以肯定,至少不少于)。

    【讨论】:

    • 谢谢,但是你没有提到ashx处理程序,它的请求管道呢?
    • @Arrabi, HttpHandler 只是在Page 部分之前执行的请求的部分
    【解决方案2】:

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

    【讨论】:

    • 在这种情况下“可重用”是什么意思?
    • Web 服务器没有义务为每个新请求创建一个新的对象实例。如果 Handler 上的 IsReusable=true,则服务器可以重用现有的处理程序对象来处理下一个请求
    • 所以它创建了一个处理程序实例并保存在内存中以重复使用它。它永远不会把它还给 GC。
    【解决方案3】:

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

    【讨论】:

    • 我知道,我想要更多技术性的答案,也许是数字,ashx 比 aspx 处理更多的连接吗?
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-15
      • 2019-09-04
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 2017-10-21
      相关资源
      最近更新 更多