我正在研究一个异步HTTP处理程序并尝试确定HttpResponse.Write
函数是否阻塞,直到它从客户端收到ACK。
MSDN文档没有具体说明;但是,我知道ISAPI WriteClient()函数的MSDN文档(类似的机制)提到同步版本在尝试向客户端发送数据时会阻塞。
我想到了确定答案的三种可能方法:
HTTPResponse.Write
方法的内部工作方式(这可能吗?)答案 0 :(得分:2)
它没有阻塞,但可以使用缓冲区并将它们一起发送。
尝试将HttpResponse.Buffer=false;
设置为直接写入您的客户端。
您还可以使用HttpResponse.Flush();
强制将您拥有的内容发送给您的客户。
关于HttpResponse.Buffer Property on MSDN
也许这对你有用:Web app blocked while processing another web app on sharing same session
答案 1 :(得分:0)
HttpResponse以两种不同的模式运行,缓冲和非缓冲。在缓冲模式下,各种Write
函数将其数据放入内存区域,并在复制数据后立即返回该函数。如果将Buffer
设置为false,则Write
会阻止,直到所有数据都发送到客户端。