嗯,由于是长连接,每个请求会在20秒钟后没有消息时服务器会断开这个连接.但是我用火狐浏览器同时打开比如说3个请求页面,但是最后断开连接的只有第三个,第一个和第二个始终没有断开连接?这是怎么回事儿?IHttpAsyncHandler这个接口微软说的也不是很明细!
“每个请求会在20秒钟后没有消息时服务器会断开这个连接”,这个结论的依据是什么?
每个请求都会保存进入服务器的时间,一旦在服务器呆的时间超过20秒钟后,服务器会向这条连接发送信息,可能的消息是告诉浏览器重新连接服务器。但是现在的问题是,假如在第一个请求到达服务器的20秒钟内,还有其他请求也随之进来了,比如还有两个2请求。那么在服务器被缓存的请求有3个,按常理说,第一个请求先进来,应该会先断开连接。但是事实却违背,总是最后一个连接被断开,之前的第一个和第二个连接还在连接服务器的!纠结死了,,,求指教
@unbreakable:
试试关闭IIS的keep alive
@dudu: 我是用的vs自带的,没用IIS,难道自带的iis不能处理多个请求吗??在线等。。。。
@dudu: 大虾,求指教。。。
@unbreakable: 我在后台测试了一下,在后台的EndProcessRequest是可以看出每个连接断开返回的结果的,但是只有最后一个是断开的连接,前几个长连接是没有断开的。不知道有什么办法解决没有?
@unbreakable: 建议用IIS进行测试
@dudu: 嗯,还是一样的!没有什么改变?不知道iis还要设置什么呀?EndProcessRequest返回的参数IAsyncResult,都是每个都调用的,但是只释放了最后一个连接!
@unbreakable: 嗯,试了的,感觉iis要配置什么!多个浏览器一个页面请求超时可是释放,但是同一个浏览器多个请求超时就只能释放最有一个请求!