如何防止我的HTTP服务器“休眠”?

时间:2010-10-31 09:53:59

标签: c# .net http

我编写了一个非常基本的基于HTTP的服务器程序,它在我的计算机后台运行,允许我从Android自动执行各种任务(通过Tasker中的HTTP请求)。这一切都很好(禁止this problem),除了超过大约30分钟的不活动后,应用程序最终入睡,好像它被分流内存,并花了很长时间才醒来当它收到HTTP请求或我尝试恢复窗口并与UI交互时。

我正在使用System.Net.HttpListener来实现服务器(使用对BeginListen的异步调用)。我该如何保持它的脚趾?

4 个答案:

答案 0 :(得分:3)

您的进程内存是否可能被换出到磁盘?也许写一个小监视器任务,每隔5分钟就会ping一次?请注意,这也可用于确保它仍在运行 - 如果它已关闭,它可以通过电子邮件发送给您,例如:)

答案 1 :(得分:2)

您的操作系统(Windows XP / Seven / Server 2008 ...)和发行版是什么? (Home / Pro / SBS ......)?

尽量优先考虑您的流程(如实时)。

您还可以尝试每10分钟执行一次任务...

答案 2 :(得分:1)

也许你可以做另一个线程并定期检查你的HttpListerner实例 IsListening 吗?

答案 3 :(得分:1)

看起来问题描述缺少提及实际问题本身。在Windows应用程序上不进入睡眠模式。非活动应用程序可能会被交换,但在收到请求时不应该花费很长时间。 在.Net 2中,由于长时间不活动导致监听器对象本身或关联对象的垃圾收集,我注意到了类似的行为。尝试保持监听器对象的静态引用。这可能会有所帮助。