首页 新闻 会员 周边 捐助

IIS回收方面求解惑

0
悬赏园豆:80 [已解决问题] 解决于 2014-04-29 11:46

我曾经在application_start内计时,后来发现会因为iis回收而无法持续计时。后来我用了windows服务。但是最近我写了个网站,用户操作后可以创建一个线程向其他网站做类似心跳包的死循环,这会因为回收而导致循环被终止吗?假如不会的话,这两种之间有什么区别从而导致了这种差异

 

 

 

旅人Proto的主页 旅人Proto | 菜鸟二级 | 园豆:242
提问于:2014-04-28 12:16
< >
分享
最佳答案
0

服务是不会停止的,当你有请求的时候,IIS就不会回收

收获园豆:80
吴瑞祥 | 高人七级 |园豆:29449 | 2014-04-28 13:19

我说的那种类似心跳包的情况下,一个用户访问产生了这个心跳包线程,然后再也没人访问网站会不会让这个线程在将来被终止?

旅人Proto | 园豆:242 (菜鸟二级) | 2014-04-28 18:34

@狼大人: 会,如果没有请求进入运行时,默认是20分钟就回收了

吴瑞祥 | 园豆:29449 (高人七级) | 2014-04-28 18:43

@吴瑞祥: 即使那个心跳包线程还在运行,依旧会被回收?

旅人Proto | 园豆:242 (菜鸟二级) | 2014-04-28 18:57

@吴瑞祥: 你这个线程也是在runtime里的吧,在runtime里就会被回收

吴瑞祥 | 园豆:29449 (高人七级) | 2014-04-29 09:46
其他回答(1)
0

当你的服务器正常接收客户端请求,CLR是不会回收的,只会自动处理回收机制。

 

当你服务器关闭或者其他问题,客户端与服务器端无法连接,进入常规的close,或者抛出异常。

 

我的建议,你必须得做一个高效心跳检测的算法。

 

 

wongdavid | 园豆:394 (菜鸟二级) | 2014-04-29 09:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册