我实现了一个HttpListener
来处理SoapRequests。这工作正常,但我找不到问题的解决方案,一些肥皂请求需要太多时间,导致客户端超时。
我如何让请求的客户知道他的请求不是超时?
我考虑过在处理请求时发送“虚拟”信息,但是 HttpListener 似乎只在您Close
响应对象时发送数据,而且这只能执行一次,所以我想这不是正确的做法.
解决方案:
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();