为什么不要使用Response.Close()
不要使用Response.Close()
不要使用Response.Close()
不要使用Response.Close()
1 因为:Close()方法会调用HttpWorkerRequest.CloseConnection()方法。终止(Terminate)与客户端的套接字连接,并使得服务器,客户端以及之间设施上的缓存(buffer)失效。导致发送到客户端的数据丢失。
2 方法Response.End()是为了兼容经典ASP程序,在Asp.NET 1.0中引入的,在调用后会抛出ThreadAbortException异常。成功时则中止(abort)当前的线程,处理管道触发EndRequest事件,不再处理之后的代码。会以同步的方式将响应内容发送(flush)给客户端。
由于.NET 设计原因,Response.End()在WebForm框架下可以终止代码执行,不再处理End()之后的代码。在MVC框架下则只是返回响应流,不会中止代码执行。
3 此外还可以使用HttpApplication.CompleteRequest()方法结束请求。
Response.Flush();
this.Context.ApplicationInstance.CompleteRequest();
综上所述:只有代码发生错误(恶意的攻击),希望终止对于客户端的响应/连接时才可以使用Response.Close()
如果你想结束请求,并向客户端发送请求则应该优先使用HttpApplication.CompleteRequest()方法。
参考文章:
1 http://weblogs.asp.net/hajan/why-not-to-use-httpresponse-close-and-httpresponse-end
3 http://www.cnblogs.com/v5wa/p/3165367.html
为什么不要使用Response.Close()的更多相关文章
- Response.Redirect引起的性能问题分析
现象: 最近做的一个系统通过单点登录(SSO) 技术验证用户登录.用户在SSO 系统上通过验证后,跳转到该系统的不同模块.而跳转的时间一直维持子啊几分钟左右. 分析步骤: 在问题复现时抓取Hang d ...
- windows charles response 乱码解决办法
使用windows 版本的charles来做代理,发现服务端返回的response会出现中文乱码的情况, 查看软件设置,遗憾的是并没有关于编码的选项. 好在charles windows版本安装目录下 ...
- 谈一谈Http Request 与 Http Response
写在前面的话:今天来总结一下http相关的request和response,就从以下几个问题入手吧. ======正文开始======== 1.什么是HTTP Request 与HTTP Respon ...
- ashx中Response.ContentType的常用类型
ashx中Response.ContentType的常用类型: text/plaintext/htmltext/xmlapplication/jsonimage/GIFapplication/x-cd ...
- 一个由Response.Redirect 引起的性能问题的分析
现象: 某系统通过单点登录(SSO) 技术验证用户登录.用户在SSO 系统上通过验证后,跳转到某系统的主页上面.而跳转的时间很长,约1分钟以上. 分析步骤: 在问题复现时抓取Hang dump 进行分 ...
- request 对象和 response 对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...
- C#、JAVA操作Hadoop(HDFS、Map/Reduce)真实过程概述。组件、源码下载。无法解决:Response status code does not indicate success: 500。
一.Hadoop环境配置概述 三台虚拟机,操作系统为:Ubuntu 16.04. Hadoop版本:2.7.2 NameNode:192.168.72.132 DataNode:192.168.72. ...
- response和request的区别以及常见问题解决
request是请求,即客服端发来的请求 response是响应,是服务器做出的响应 --------------------------------------------------------- ...
- Webform(五)——内置对象(Response、Request)和Repeater中的数据增删改
一.内置对象 (一)Response对象 1.简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用R ...
- Hemodynamic response function (HRF) - FAQ
Source: MIT - Mindhive What is the 'canonical' HRF? The very simplest design matrix for a given expe ...
随机推荐
- Coursera台大机器学习课程笔记5 -- Theory of Generalization
本章思路: 根据之前的总结,如果M很大,那么无论假设泛化能力差的概率多小,都无法忽略,所以问题转化为证明M不大,然后上章将其转化为证明成长函数:mh(N)为多项式级别.直接证明似乎很困难,本章继续利用 ...
- WCF入门-项目间调用服务
练习WCF入库,添加了一个WCF项目,同时添加了一个控制台程序,在控制台程序启动时,调用WCF服务,报错. 控制台程序代码为: namespace WcfConsumer { class Progra ...
- html5与html4的区别,如何一眼区分
还是在面试过程中遇到的这个问题,但是当时感觉回答的不是很全面,回来以后自己做的总结: 以上这个问题如果教大家看源码,可能一眼很直观的就能认出,那个是html4,那个是html5,但是面试的时候问道这个 ...
- 获得本app的版本号
话不多说,直接贴代码 PackageManager manager; PackageInfo info = null; manager = this.getPackageManager(); try ...
- C语言的内存分配
内存分为五大区: 1.栈区:在函数内部声明的变量都存在栈区,只管申请,系统会帮我们自动释放,释放的时间是作用域结束,遵循先进后出(first in last off(FILO)),栈的开辟是连续的,不 ...
- PhpStorm创建Drupal模块项目开发教程(1)
用户体验是应用程序开发的一个重要因素.一个加载时间长.设计差.导航不清晰的网站很难留住客户. Web应用程序由多个部分组成,并且可能运行在多种环境中,所以Web应用程序从开发开始就需要在所有环境中进行 ...
- 省市联动sql脚本
create database ProCityData use Procitydata --创建Province(省表) create table Province ( ProID int prima ...
- <hr> 的18种样式
18 Simple Styles for Horizontal Rules (hr CSS Design) Simple Styles for <hr>'s Code: <!DOCT ...
- 将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑
将形如:Oct 8, 2016 5:29:44 PM串转换成正常时间在真机上遇到的坑 /** * 根据传入字符串 * * @param str 传入的日期字符串 形如:Oct 8, 2016 5:29 ...
- RecyclerView的坑
LinearLayoutManager layoutManager = new LinearLayoutManager(this);recycleView.setLayoutManager(layou ...