[英]How to prevent my HTTP server from “sleeping”?
我编写了一个非常基本的基于HTTP的服务器程序,它在我的计算机后台运行,允许我从Android自动执行各种任务(通过Tasker中的HTTP请求)。 这一切都很好(除了这个问题 ),除了超过大约30分钟的不活动后,应用程序最终入睡,就好像它被分流内存一样,并且需要很长一段时间才能在收到时醒来HTTP请求或当我尝试恢复窗口并与UI交互时。
我正在使用System.Net.HttpListener
来实现服务器(使用对BeginListen
异步调用)。 我该如何保持它的脚趾?
您的进程内存是否可能被换出到磁盘? 也许写一个小监视器任务,每隔5分钟就会ping一次? 请注意,这也可用于确保它仍在运行 - 如果它已关闭,它可以通过电子邮件发送给您,例如:)
什么是您的操作系统(Windows XP / Seven / Server 2008 ...)和发行版? (Home / Pro / SBS ......)?
尽量优先考虑您的流程(如实时)。
您还可以尝试每10分钟对您的流程执行一些任务...
也许你可以做另一个线程,并定期检查你的HttpListerner实例IsListening ?
看起来问题描述缺少提及实际问题本身。 在Windows应用程序上不进入睡眠模式。 非活动应用程序可能会被交换,但在收到请求时不应该花费很长时间。 在.Net 2中,由于长时间不活动导致监听器对象本身或关联对象的垃圾收集,我注意到了类似的行为。 尝试保持监听器对象的静态引用。这可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.