背景: GPRSデバイスの1つにプロキシを介して汎用ハンドラを接続する際に問題が発生しています。ハンドラは戻り直後に接続を終了しますが、プロキシはデバイスが予期しない接続を開いたままにします。HttpHandlerを生存/維持する中間データを維持する
私の質問:ハンドラがデータを返した後、短時間接続を維持するために、テスト目的(プロキシの動作を模倣するため)が可能ですか?
例えば、これはない作業を行います。
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;
}
}
}
[編集]
を期待通りに[OK]を、実際に、それが動作します。問題は、FirefoxとFiddlerの両方が、接続が閉じられるまで未処理のデータを表示するのを遅らせることです。
Response.BufferOutput
がfalse
に設定されていて、端末プログラムを使用して接続すると、すぐにデータが取得され、接続は10秒間開いたままです。
ありがとうございました。それは私が実際にこのようにする必要はないことが判明しましたが、あなたの提案はそれにもかかわらず機能しました。結局のところ、単純なフラッシュが期待どおりに機能するようです。 – Groo
Wickedが助けてうれしい! –