提前关闭与浏览器的连接并返回响应状态

本文关键字:连接 返回 响应 状态 浏览器 | 更新日期: 2023-09-27 18:08:53

我在一个项目中实现了一个自定义IHttpModule,它过滤文件上传并提供上传状态。我希望自定义模块早点关闭连接(不想接收对方发送的所有数据,这样允许很大,节省传入带宽)。

是否有可能使用HTTP协议?

我尝试发送"ContentLength: 0"answers"Connection: close"报头,刷新响应,关闭连接(HttpWorkerRequest.CloseConnection)。

workerRequest.SendStatus(400, "Bad request");
workerRequest.SendKnownResponseHeader(HttpWorkerRequest.HeaderContentLength, "0");
workerRequest.SendKnownResponseHeader(HttpWorkerRequest.HeaderConnection, "close");
workerRequest.FlushResponse(false);
workerRequest.CloseConnection();
((HttpApplication)sender).CompleteRequest();

浏览器/firefox响应显示"Connection reset"错误消息。没有任何迹象表明从服务器接收到任何数据/报头/状态。

提前关闭与浏览器的连接并返回响应状态

http客户端只有在完成发送数据后才期望响应。您应该修改客户端,使其发出多个小尺寸的请求,以便可以向其发送响应,而不是让服务器关闭连接(这将不起作用,并且您已经测试过了)。

查看在http://slfileupload.codeplex.com/中实现的http处理程序,以获得典型的示例。