I Реализовано HttpListener
для обработки SoapRequests. Это работает отлично, но я не могу найти решение проблемы, что некоторые запросы на мыло занимают слишком много времени, что приводит к таймаутам на стороне клиента.HttpListener prevent Timeout
Как сообщить запрашивающему клиенту, что его запрос не является таймаутом?
Я думал о посылке «фиктивной» информации, пока запрос обрабатывается, но HttpListener, похоже, отправляет данные только тогда, когда вы отвечаете на объект ответа, и это можно сделать только один раз, так что это не так что я должен делать.
Soloution:
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();
То, что я тоже думал, но это, похоже, не работает. Он отправляет всю информацию в один кусок, когда я закрываю ответ. – CSharpie
Вы установили свойство 'SendChunked'? –
Это сделало трюк. Спасибо. – CSharpie