假设我有一个由IIS托管的ASP.Net Web应用程序。除了提供请求的功能之外,我还添加了在指定时间间隔内定期执行的操作,例如:每30分钟一次。此操作与外部Web请求无关,例如,其目的是删除无用的日志文件。
问题是:如果没有人长时间访问我的网站(白天,星期),IIS仍会保持我的应用程序活动,并且上述操作将每30分钟执行一次。如果长时间没有请求,IIS会关闭/暂停应用程序的活动吗?
也许这是一个蹩脚的问题,但我找不到明确的答案。
答案 0 :(得分:2)
IIS不会关闭,但IIS会在一段时间不使用后回收您的应用。
因此,如果您的应用负责触发事件,那么如果您的应用未运行(已回收),则不会运行该应用。
如果您有权访问计算机,可以让服务偶尔访问您的网站一次,或者在服务器上设置计划任务。
如果您正在共享托管,则必须检查其功能,看看他们是否有类似内容。
此外,如果您只是尝试删除日志文件或其他一些不重要的事情(因为除非有人访问您的网站,否则您将没有日志),您可以在Application_Start
中执行操作。当IIS重新启动您的应用程序时,这甚至会触发。