HttpListener设置总连接超时

use*_*875 5 c# httplistener

我试图控制单个连接的最大总持续时间HttpListener.我知道TimeoutManager它包含的属性和5个左右的不同超时值,但不清楚是否设置每个值将累加到连接中可能发生延迟的总位置.

我正在寻找更多的内容:"如果从打开连接的那一刻起到现在为止连接的持续时间超过xs,则中止它而不发送任何其他内容或等待其他任何内容."

编辑

为了澄清,我正在尝试的方案涉及服务器尝试发送响应和客户端未接收.这导致HttpListenerResponse.OutputStream.Write()无限期挂起.我试图找到一个方法,我可以从另一个线程调用,以强制中止连接.我尝试过使用OutputStream.Close()并得到了Cannot Close Stream until all bytes are written.我也试过HttpListenerResponse.Abort()没有产生明显效果.

Gus*_*man 4

这些属性都不会满足您的要求。HttpListener 旨在控制请求流、传入和传出数据,因此它不处理完全接收响应与发送响应之间的时间,您有责任处理它。

如果总时间比所需的时间长,您应该创建自己的机制来中止请求,只需一个计时器就足够了,当创建新连接时,如果请求在之前结束,则将总超时作为到期时间的计时器排入队列定时器到期取消定时器,否则定时器中止请求。