【发布时间】:2011-12-07 19:53:42
【问题描述】:
背景:我们的一台 GPRS 设备通过代理连接到通用处理程序时遇到问题。虽然处理程序在返回后立即关闭连接,但代理保持连接打开,这是设备不期望的。
我的问题:为了测试目的(为了模仿代理的行为),是否有可能在处理程序返回其数据后让连接保持活动状态一段时间? p>
例如,这不起作用:
public class Ping : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.BufferOutput = false;
context.Response.ContentType = "text/plain";
context.Response.WriteLine("HELLO");
context.Response.Flush(); // <-- this doesn't send the data
System.Threading.Thread.Sleep(10000);
}
public bool IsReusable
{
get
{
return false;
}
}
}
[编辑]
好的,实际上,它按预期工作。问题是 Firefox 和 Fiddler 都会延迟显示原始数据,直到连接关闭。
如果Response.BufferOutput设置为false,我使用终端程序连接,我立即获取数据,并且连接保持打开10s。
【问题讨论】:
标签: c# asp.net http keep-alive generic-handler