SoapRequestsHttpListener
を処理するために を実装しました。これは正常に動作しますが、一部の SOAP 要求に時間がかかりすぎて、クライアント側でタイムアウトが発生するという問題の解決策が見つかりません。
要求しているクライアントに、彼の要求がタイムアウトではないことを知らせるにはどうすればよいですか?
リクエストの処理中に「ダミー」情報を送信することを考えましたが、HttpListenerClose
は応答オブジェクトの場合にのみデータを送信するようで、これは一度しか実行できないため、これは正しいことではないと思います.
解決策:
Thread alliveWorker = new Thread(() =>
{
try
{
while (context.Response.OutputStream.CanWrite)
{
context.Response.OutputStream.WriteByte((byte) ' ');
context.Response.OutputStream.Flush();
Thread.Sleep(5000);
}
}
finally
{
}
});
alliveWorker.Start();
doWork();
alliveWorker.Interrupt();
createTheRealResponse();