これは複数の部分からなる質問です。
完了するまでに数分かかる可能性のあるプロセスがあります。これは、非同期のjavascriptリクエストを使用してHTTPHandlerを呼び出すことによって実行されます。
質問1:このリクエストがサーバーとクライアントの両方でタイムアウトしないようにするにはどうすればよいですか?
質問2:最終ページが完了する前にXmlHttpRequestオブジェクトに返送される処理中に、HTTPHandlerからデータを出力することは可能ですか?
実際の作業負荷と完了した返品率を計算したいと思います。これは可能だと思います。
任意のヒント?
編集:
簡単なテスト:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
for (int i = 0; i < 100; i++)
{
context.Response.Write("Hello World " + i + Environment.NewLine);
System.Threading.Thread.Sleep(500);
context.Response.Flush();
}
}
HelloWorldを少しずつクライアントにプッシュします...これは同期リクエストで機能します。xmlHttpRequestが各行のreadystatechangeイベントを取得するかどうかを確認します。
ASP.NETアプリでのマルチスレッド化は常に避けています。これは、作業プロセスがいつ終了するかを制御できないため、生成されたすべてのスレッドが停止する結果になるためです。
代わりに、IISがすでにこれを行っているのに、なぜ別のスレッドプールを再発明するのか。