我正在项目中实现自定义IHttpModule,该IHttpModule可以过滤文件上传并提供上传状态。
我希望自定义模块尽早关闭连接(不想接收另一端发送的所有数据,该数据可以很大,以节省传入的带宽)。

使用HTTP协议是否可能?

我尝试发送“ ContentLength:0”和“ 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响应显示“连接重置”错误消息。
没有任何迹象表明从服务器接收到任何数据/标头/状态。

提前致谢。

最佳答案

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

检查在http://slfileupload.codeplex.com/中实现的http处理程序,以获取有关其通常执行方式的示例。

09-30 17:18