Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net .aspx与ashx的主要区别_Asp.net_Service_Ashx - Fatal编程技术网

Asp.net .aspx与ashx的主要区别

Asp.net .aspx与ashx的主要区别,asp.net,service,ashx,Asp.net,Service,Ashx,.aspx和.ashx页面之间有什么区别? 当我需要处理从代码调用并返回响应的请求时,我现在使用ashx,但我希望得到更技术性的回答。。aspx是一个呈现页面。如果需要查看,请使用.aspx页面。 如果您只需要后端功能,但将保持在同一视图上,请使用.ashx页面。.aspx使用完整的生命周期(Init,Load,PreRender),并可以响应按钮单击等操作。 .ashx只有一个ProcessRequest方法。Page是一个特殊的案例处理程序 通用Web处理程序(*.ashx,基于扩展的处理器

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

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

.aspx
使用完整的生命周期(
Init
Load
PreRender
),并可以响应按钮单击等操作。

.ashx
只有一个
ProcessRequest
方法。

Page
是一个特殊的案例处理程序

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

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

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

MSDN:

ASP.NET HTTP处理程序正在处理该进程 (通常称为 “端点”),该端点响应 向ASP.NET网站发出的请求 应用最常见的处理程序 是一个ASP.NET页面处理程序 处理.aspx文件。当用户 请求一个.aspx文件,请求为 由页面通过页面进行处理 处理程序

下图说明了这一点:

关于你的第二个问题:

ashx处理的连接是否比aspx多


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

对于以前使用过nodeJs编程的人,尤其是使用expressJS的人。我认为
.ashx
是一个调用
next
函数的中间件。虽然
.aspx
将是实际响应请求的控制器,无论是
res.redirect
res.send
还是其他什么。

我知道,我想要更多的技术答案,可能是数字,ashx比aspx处理更多的连接吗?谢谢,但你没有提到ashx处理程序,那么它的请求管道呢?@Arrabi,
HttpHandler
只是在
Page
部分之前执行的请求的一部分。在这个上下文中,“可重用”是什么意思?web服务器没有义务为每个新请求创建一个新的对象实例。如果处理程序上的IsReusable=true,则服务器可能会重用现有处理程序对象来处理下一个请求。因此,服务器会创建处理程序的实例并将其保留在内存中以重用它。它永远不会把它还给GC。