如何找到一个asp.net客户端是immidiately断开连接

时间:2011-02-20 12:20:11

标签: c# asp.net client disconnected

我知道Response.IsClientConnected但在我的情景中它有很大的滞后。代码:

// sample code for sending a dynamic file in chuncks

long bytesSent = 0;

while (continueSending)
   {
      if (!AskReceiverToContinue())
         break;

      if (!Response.IsClientConnected)
         break;

     // Your suggestion goes here... :)

      try
      {
         Response.OutputStream.Write(buffer, 0, buffer.Length);
         bytesSent += buffer.Length;
      }
      Catch
      {  // To my experience, this is more reliable than Response.IsClientConnected
         continueSending = false;
      }
   }

问题是客户端实际接收的字节数量比我的bytesSent小得多。似乎当客户端断开连接时,程序会发现情况有很大的延迟(并继续增加bytesSent),这是因为ASP.NET告诉我情况(客户端断开连接)很晚。

是否有任何可靠的方法可以找出客户端何时断开连接(实时)?

1 个答案:

答案 0 :(得分:1)

您正在通过HTTP进行转移,不是吗?如果是,则由于HTTP协议的无状态而无法实现。只有你必须帮助的是你已经使用的超时。