Response.End的内部原理

来源:互联网 发布:在线html源码查看 编辑:程序博客网 时间:2024/05/21 00:56

在Web开发中,浏览器端的请求到达服务器进行处理的时候,Response.End的作用就是让request执行到此结束,输出到客户端浏览器。其内部原理是通过引发异常完成的。如果你在ASP.NET 使用Response.End 时,就会发生ThreadAbortException 例外状况。 举例来说,当你在try - catch 中,呼叫Response.End 时,就会引发例外状况:「System.Threading.ThreadAbortException: 执行已经中止」。 其实,当你使用Response.End 方法时,会因为内部呼叫Thread.Abort() 而引发ThreadAbortException 的例外,停止网页的执行,略过Response.End 以下的代码,直接触发HTTP 管线(HTTP Pipelines)的执行链结里的最后一个事件,也就是HttpApplication.EndRequest 事件。 然后将缓冲输出的资料传送到用户端。


而使用Response.Redirect 或是Server.Transfer 也会发生这种例外,因为这两个方法都会在内部呼叫Response.End 方法。 

原创粉丝点击